JavaScript prøv at fange: Undtagelse af håndtering af undtagelser

Den try...catch..finallysætning angiver en blok af kode til at prøve sammen med en reaktion, hvis en fejl opstår. Den tryerklæring indeholder en eller flere tryblokke, og ender med mindst én catchog / eller en finallyklausul.

try...catch:

try { throw new Error('my error'); } catch (err) { console.error(err.message); } // Output: my error

try...finally:

try { throw new Error('my error'); } finally { console.error('finally'); } // Output: finally

Når du ikke bruger en catcherklæring, bliver "fejlen" ikke fanget, selvom koden i finallyblokken udføres. I stedet fortsætter fejlen til den øverste tryblok (eller hovedblok).

try...catch...finally:

try { throw new Error('my error'); } catch (err) { console.error(err.message); } finally { console.error('finally'); } // Output: // my error // finally

Typisk anvendelse:

try { openFile(file); readFile(file) } catch (err) { console.error(err.message); } finally { closeFile(file); }

Indlejret try...catch:

Du kan også:

  • Nest en try-catcherklæring inde i en tryblok.

Du kan rede en try...catcherklæring i en tryblok. For eksempel at smide en fejl opad:

try { try { throw new Error('my error'); } catch (err) { console.error('inner', err.message); throw err; } finally { console.log('inner finally'); } } catch (err) { console.error('outer', err.message); } // Output: // inner my error // inner finally // outer my error