TypeScript では、try / catch を使ってエラー(プログラム実行中に起きる問題)を処理できます。
最近の TypeScript では、catch 内のエラーを安全に扱う仕組みが用意されており、思わぬバグを防ぎやすくなっています。
catch の中のエラーは「何が入っているかわからないもの」として扱い、確認してから使おう、という仕組みです。
try {
JSON.parse("invalid json");
} catch (e) {
console.log(e.message);
}
一見問題なさそうですが、実は 安全ではありません。
try {
JSON.parse("invalid json");
} catch (e) {
if (e instanceof Error) {
console.log(e.message);
} else {
console.log("予期しないエラーが発生しました");
}
}
JavaScript では、throw できるものは Error 以外でもOK です。
throw "エラー文字列";
throw 404;
throw { message: "独自エラー" };