2016-04-22 13 views
-1

私は関数の助けを借りて単純なJavaScriptの "クラス"をやろうとしています。しかし、値を設定する前に入力データが正しいかどうかを確認したい。データが正しくない場合は、新しいエラーをスローしたいと思います。これは私が思いついたものです:関数のインスタンス化時に新しいエラーを投げる

function Testing(arg1, arg2) { 
    if (arg1 !== '' && arg2 !== '') { 
    this.arg1 = arg1; 
    this.arg2 = arg2; 
    } else { 
    throw new Error('Data is empty!'); 
    } 
} 

これはJavaScriptでも許されていますか?よりよい解決策は何でしょうか? ありがとうございました!

+1

したがって、両方の引数が空である場合にのみ、データは無効ですか? – gurvinder372

+1

これは完璧です。このアプローチはhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throwで見ることができます。すべての例では、 'if-else'を使用してエラーをスローします。 – AKS

+0

JSで許可されないと思われるものは何ですか?致命的なエラー状態を報告するために 'throw'を使うのは良い解決策ではないと思いますか? –

答えて

0

これは問題ありません。内部構造の一貫性を保証するので、オブジェクトの構築に投げることは良いことです。

特別な.invalidフィールドを使用すると、ユーザーは作成が失敗したという事実を無視することができます。

関連する問題