我在服务器端集线器上获得了一个简单的示例:
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()
在服务器端捕获异常时调用一些方法。但是,这会使我的 JavaScript 代码更加复杂,因为我必须保持状态,我最后调用了哪个服务器端方法,挂钩到该回调并在这两者之间建立连接。
那么有没有办法在 JavaScript 客户端上获取类型化的异常代理呢?如果没有,除了提到的事件排序混乱之外,任何想法如何在没有它们的情况下实现我想要的?