同期・非同期エラーを捕捉して処理する
try {
const data = JSON.parse(invalidJson);
await fetchData();
} catch (err) {
if (err instanceof SyntaxError) {
console.error('JSON解析エラー');
} else if (err instanceof NetworkError) {
console.error('ネットワークエラー');
} else {
throw err; // 未知のエラーは再スロー
}
} finally {
cleanup(); // 成功・失敗に関わらず実行
}TypeScriptではcatchのerrはunknown型。instanceof等で型を絞り込む。finallyはreturnやthrowの後でも必ず実行される。