JavaScript Próbálja meg a fogást: a kivételkezelés magyarázata

Az try...catch..finallyutasítás megad egy kódblokkot, amelyet hiba esetén a válasz kíséretében kell kipróbálni. Az tryutasítás egy vagy több tryblokkot tartalmaz, és legalább egy catchés / vagy egy finallyzáradékkal végződik .

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

Ha nem használ egy catchutasítást, akkor a hiba nem "fogott" meg, annak ellenére, hogy a finallyblokkban lévő kódot futtatták. Ehelyett a hiba a felső tryblokkig (vagy a fő blokkig) folytatódik .

try...catch...finally:

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

Tipikus használat:

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

Beágyazott try...catch:

Te is:

  • Nest egy try-catchnyilatkozatot belsejében egy tryblokk.

Egy try...catchmondatot beágyazhat egy tryblokkba. Például egy hiba felfelé dobásához:

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