Obsługa wyjątków¶
Wystąpienie wyjątku, jeśli nie jest objęte blokiem try
powoduje:
- przerwanie wykonywania skryptu,
- wyświetlenie komunikatu błędu.
Dla bardzo prostego zobrazowania, spójrz na następujący kod:
1 2 3 |
|
Wykonanie tego kodu, generuje poniższy rezultat w konsoli, a po jego wyświetleniu przerywa wykonywanie dalszych instrukcji:
throw new Error('Operation error.');
^
Error: Operation error.
at Object.<anonymous> (/nodestart-code/errors/new-error.js:1:7)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
at node:internal/main/run_main_module:17:47
Kod od linii nr 2 się nie wykona, zostanie ona całkowicie zignorowany. Dzieje się tak, ze względu na pominięcie bloków, które umożliwiają nam kontrolę przepływu.
try, catch, finally, throw¶
try
, catch
, finally
to instrukcje dzięki, którym można obsłużyć występujące wyjątki bez zatrzymywania działania skryptu.
try
- The try statement defines the code block to run (to try).catch
- The catch statement defines a code block to handle any error.
The finally statement defines a code block to run regardless of the result.
The throw statement defines a custom error.
Both catch and finally are optional, but you must use one of them.
Podstawy wyjątków¶
TODO
Różnica pomiędzy throw new Error
, a throw Error
¶
TODO
Przekazywanie przyczyny wyjątku¶
TODO
Errors can now be optionally constructed with a cause option, pointing to another error. This adds a cause property on the new error