サーバー側のハブでこのメソッドの簡単なサンプルを入手しました。
public int CanThrowException(int input)
{
if (0==input)
throw new ArgumentOutOfRangeException("input", "was zero");
return -input;
}
クライアントでこれ:
$.connection.testHub.server.canThrowException(0).fail(function (x)
{
console.log(x);
});
チェックするx
と、パラメーター名とメッセージを含む文字列が得られます。
私が探しているのは、サーバー側の例外のプロパティをミラーリングする実際の Javascript オブジェクトを取得する方法です。したがって、特定のケースでは、プロパティmessage
、actualValue
およびが必要ParamName
です。
なぜ私はこれが欲しいのですか?通常はオブジェクトを返すサーバー側コードを書きたいのですが、場合によっては、エラーに関する詳細情報を含む例外をスローするため、シナリオでユーザーに表示することは絶対に理にかなっています (実際には、そうではありません)。理にかなっています、それは必要です)。
client.caller.OnErrorThisAndThat()
もちろん、サーバー側で例外をキャッチすると、何らかのメソッドを呼び出すことができます。ただし、最後に呼び出したサーバー側メソッドの状態を保持し、そのコールバックにフックして、これら 2 つを接続する必要があるため、JavaScript コードがより複雑になります。
JavaScript クライアントで型付き例外プロキシを取得する方法はありますか? そうでない場合は、言及されたイベントソート混乱を除いて、それらなしで私が望むものを達成する方法はありますか?