エラーハンドリング

配列を受け取り、カンマで区切って文字列にする関数があるとします。この関数の引数に文字列を渡すとエラーが発生します。エラーが発生する原因として、文字列型はjoinというメソッドを持っていないため、メソッドを呼び出すことができずエラーとなります。このような場合、内部的にthrow文が使用されます。throw文は例外を発生させ、そこで処理が止まります。

index.js◎
...
console.log(numbers.map((num) => num * 3)); // [3, 6, 9, 12]
const splitString = (str) => {
    return str.split(",");
};
console.log(splitString("a,b,c")); // ['a', 'b', 'c']
console.log(splitString(1)); // Uncaught TypeError: str.split is not a function

この例外を検知する方法として、try~catch文というものがあります。try~catch文tryの中に記載した処理にて、例外処理が発生した場合に、catchの中の処理が処理されます。

catch(e)eは例外処理が発生した場合の例外の内容が格納されます。

通常例外処理が発生すると、throw new Error('エラーメッセージ')のようにErrorコンストラクターから、Errorオブジェクトを生成します。このErrorオブジェクトeにて受け取ることができます。

index.js◎
...
console.log(splitString("a,b,c")); // ['a', 'b', 'c']
try {
    console.log(splitString(1));
} catch(e) {
    alert(e);
}

ちなみalertメソッドは、ブラウザ上部にポップアップを表示するメソッドで、以下のように表示されます。

現在内部的にthrowしていますが、明示的にthrowするようにしましょう。

以下のようにエラー分が変わったかと思います。

Last updated