我需要重新抛出一个已被捕获并存储在其他位置的异常,同时不丢失有关第一次捕获/存储异常时的堆栈跟踪信息。我的代码大致如下:
我看到解决此问题的方法使用了反射(例如这里和这里),或使用序列化(例如这里),但在Silverlight中,这些方法都无法使用(私有反射不被允许,而在序列化方法中使用的类/方法在Silverlight中不存在)。
是否有任何方法可以在Silverlight中保留堆栈跟踪?
public void Test()
{
int someParameter = 12;
ExecuteSomeAsyncMethod(someParameter, CallbackMethod);
}
public void CallbackMethod(object result, Exception error)
{
//Check for exceptions that were previously caught and passed to us
if(error != null)
//Throwing like this will lose the stack trace already in Exception
//We'd like to be able to rethrow it without overwriting the stack trace
throw error;
//Success case: Process 'result'...etc...
}
我看到解决此问题的方法使用了反射(例如这里和这里),或使用序列化(例如这里),但在Silverlight中,这些方法都无法使用(私有反射不被允许,而在序列化方法中使用的类/方法在Silverlight中不存在)。
是否有任何方法可以在Silverlight中保留堆栈跟踪?