→
ユーザー定義の例外を発生させます。
式 | 任意の式を指定します。 |
---|
以下のいずれもが例外を発生させます:
throw 'Error2'; // 文字列値である例外を生成します throw 42; // 値 42 である例外を生成します throw true; // 値 true である例外を生成します throw new Error('Required'); // Required というメッセージを持ったエラーオブジェクトを生成します
また、throw 文は throw キーワードと式の間に改行が許されていないため、自動セミコロン挿入(ASI)の影響を受けます。
オブジェクトで例外を発生させる
例外を派生させるときにオブジェクトを指定することができます。そうすれば、catch ブロックの中でそのオブジェクトのプロパティを参照できます。次の例は、UserException 型のオブジェクトを生成し、それを throw 文の中で使っています:
function UserException(message) { this.message = message; this.name = 'UserException'; } function getMonthName(mo) { mo = mo-1; // 配列の添字のために月の数を調整する (1 = Jan, 12 = Dec) var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; if (months[mo] !== undefined) { return months[mo]; } else { throw new UserException('InvalidMonthNo'); } } try { // 試みる文 var myMonth = 15; // 15 は範囲外であり、例外が発生する var monthName = getMonthName(myMonth); } catch (e) { monthName = 'unknown'; alert(e.message + ":" + e.name); // エラーハンドラーに例外オブジェクトを渡す }
try{ throw "10ああ"; }catch(e){ alert(e); } D=e; //エラー発生する。e は catch ブロックの中だけで有効。