2016-12-21 7 views
1

私はtry/catchでカスタム例外を作成する方法について数日間研究しました。ここでJavascriptカスタム例外

は私がしようとしていますものです:

私は私のhtmlページに含まれるJSファイルを持っています。 JSファイルはカスタムオブジェクトを定義し、オブジェクトのメソッドを定義します。

次に、htmlページに私がやっている次:

try { 
    MyObj = new CustomObj;  //from the included JS file. 
    MyObj.CustomMethod();  //also from the included JS file. 
} catch(e) { 
    alert("Error in either the create of the object, or the method. Error is " + e.description) 
} 

私はキャッチに捕獲されているエラーオブジェクトのプロパティを設定するには、CustomMethod()のためのコード内で、できるようにする必要がありますステートメント。例:

CustomMethod = function{ 
    try{ 
     document.getelementById("field1").value = "my value"; 
    } catch(err) { 
     //Set the return error 
     ReturnErr.description = "There was an error!"; 
    } 
    }; 

これを行うことはできますか?私が試したことから、throw文を使用しましたが、Errorオブジェクトには影響しません。したがって、catchセクションは決してトリガされません。 faceでは、カスタムメッセージはコンソールにのみ表示されます。

ありがとうございます。

+0

可能な複製を、物事を整理するのに役立ちます願っていますJavaScript?](http://stackoverflow.com/questions/783818/how-do-i-create-a-custom-error-in-javasc ript) –

答えて

1

試してみてください。

function MyException(_message, _data) { 
    this.message = _message; 
    this.data = _data; 
    this.name = "MyException"; 
} 

使用

try{ 
     //...     
    } 
    catch(_error){ 
     throw new MyException(message, _error); 
    } 

は、[どのようにして、カスタムエラーを作成するか、それはの

+0

ありがとうございました。しかし、あなたの例では(_error)を変更できないと思いますか? –

+0

@EricMeans、申し訳ありませんが、タイプミス、2番目のパラメータとしてエラーを渡します。 –

+0

申し訳ありませんが、私は、キャッチブロックでthrowを使用する必要はなく、キャッチブロックが取得するエラーをtryブロックの呼び出された関数/メソッドで設定することでした。それは意味をなさないでしょうか? –