try...catch..finally declarația specifică un bloc de cod pentru a încerca împreună cu un răspuns în cazul în care apare o eroare. try declarația conține una sau mai multe try blocuri și se termină cu cel puțin unul catch și / sau a finally clauză.

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

Când nu folosiți un catch , eroarea nu este „surprinsă”, chiar dacă codul din finally blocul este executat. În schimb, eroarea va continua până la partea superioară try bloc (sau bloc principal).

try...catch...finally:

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

// Output:
// my error
// finally

Utilizare tipică:

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

Cuibărit try...catch:

Poti de asemenea:

  • Nest a try-catch declarație în interiorul unui try bloc.

Poți cuibărește un try...catch declarație în cadrul unui try bloc. De exemplu, pentru a arunca o eroare în sus:

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