6

JavaScriptから呼び出しを行うページメソッドがあります

Pagemethods.MyMethod(MyParameter, onsucess, onfailure);

コードビハインドには、次のようなものがあります。

[WebMethod]
public static void MyMethod(Param)
{
   try{
     //DoSomething..
   }
   catch(exception ex)
   {
      //Log the exception and rethrow
      throw new exception(ex.innerexception);
   }
}

今私が直面している問題は次のとおりです。

例外が発生するたびに、コードビハインドから例外を再スローします

しかし、onfailure メソッドでは、「サーバー メソッド MyMethod が次のエラーで失敗しました:」という一般的なメッセージが表示されます。

私は例外の詳細を取得していないようで、その一般的な例外のみを取得しています。

UI/JavaScript 側に従って処理するために、JavaScript で例外の詳細を取得するにはどうすればよいですか。

web.config のカスタム エラー設定の問題ではないことを確認しました。

ここで何が起こっているかについて、誰かが私に教えてくれますか?

PS:コードのすべての行をすべて実行しましたが、ログに記録された後の例外は、適切な例外の詳細、つまりメッセージとともに再スローされます。

4

2 に答える 2

6

私が理解している限り、あなたが持っている限り

<customErrors mode="off" />

web.configで、メッセージがクライアントに返されます。この設定がありますか?

エラーに関連するメッセージを表示するには、ページメソッド呼び出しの3番目のパラメーターとして関数の名前をoassedする必要があります。この関数は次のように単純にすることができます。

function onfailure( result )
{
   alert( result.get_message() );
}

それは私たちが持っているものであり、それは問題なく動作します

于 2009-06-08T12:05:04.433 に答える
1

web.config のセクションで設定<customErrors mode="off" />した後<system.web>、これらの関数を試して、PageMethod の onfailure からすべての例外の詳細を取得します。

function onfailure(error) {                
    alert("Error: " + error.get_message() + "; " + 
        "Stack Trace: " + error.get_stackTrace() + "; " + 
        "Status Code: " + error.get_statusCode() + "; " + 
        "Exception Type: " + error.get_exceptionType() + "; " + 
        "Timed Out: " + error.get_timedOut());
}

エラーのステータス コードは、エラー メッセージ自体よりもはるかに役立つことがわかりました。

于 2012-12-27T19:58:48.833 に答える