【javascript・try/catch】TypeErrorオブジェクトでエラーをカスタマイズ

try/catchの際にnew TypeErrorオブジェクトを追加することでエラーの内容を自分でエラーをカスタマイズすることができます。

投げたエラー文を使ったダイアログを表示したりエラー文に応じてリダイレクトをしたりと

広い範囲で使うことができるので少し凝ったtry/catchを使う際は追加すると便利です。

以下のように通信結果が404(対象ファイルが見つからない)だったりしたときにTypeErrorの中身が

throw(投げられる)されcatchへと渡されます。

try {
if(window.localStorage.getItem(‘userType’) === ‘supporter’){
result = (await weatherService.getWeather()).data;
}
if (result) {
this.setState({ weather_result: result });
} else {
throw new TypeError(“見つかりませんでした。”)
}
//TypeErrorの中身「見つかりませんでした」が格納される
} catch (error) {
console.log(error);
}

また、TypeError自身はメッセージ以外にも引数を持つことができ、それぞれどのような値を返すかは

最初から決まっています。

一つ目の引数にはメッセージ、二つ目の引数にはファイル名、三つ目の引数は数値の10

をいれています。いずれも返ってきているのが確認できます。

try {

throw new TypeError('Hello', "hello.js", 10);

} catch (e) {
console.log(e.message); // "Hello"
console.log(e.fileName); // "hello.js"
console.log(e.lineNumber); // 10
}

filenameとlinenumberは任意なので必要なければmessageだけでも構いません。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG