JavaScript > 例外処理 > カスタムエラー

例外としてerrorオブジェクトをを投げる。 入力した値が数字の場合2倍して返す。 数字以外は例外を投げる。

HTML

<form>
    <input id="input" type="text" size="40">
    <button id="check">2倍にする</button>
</form>

JavaScript

$('#check').click(function(e) {
    var data = $('#input').val();
    try {
        $('#input').val(double(data));
    } catch (e) {
      throw e;
        $('#input').val(e.showMessage());
    }
    return false;
});

function double(data) {
    if (data.match(/[^0-9]/) !== null) {
        throw new CustomError('カスタム例外-数字以外が入力された。');
    }
    return data * 2;
}



// カスタムエラー Errorクラスを継承


function CustomError(message) {
    this.message = message;
}
// プロトタイププロパティとインスタンスプロパティの両方を継承
CustomError.prototype = new Error();
// コンストラクタを再設定
CustomError.prototype.constractor = CustomError;
// 独自メソッド
CustomError.prototype.showMessage = function() {
    return this.name + this.message;
}