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;
}