Ste*_*iel 5 .net c# silverlight exception
我需要重新抛出一个被捕获并存储在其他地方的异常,而不会丢失有关何时首次捕获/存储异常的堆栈跟踪信息.我的代码看起来像这样:
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...
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个使用反射的问题的解决方案(例如这里和这里)或使用序列化(例如这里)但是这些都不适用于我在Silverlight中(不允许私有反射,并且使用的是类/方法) Silverlight中不存在序列化方法).
有没有办法保留在Silverlight中工作的堆栈跟踪?
抛出一个新的异常,并将该异常作为内部异常:
throw new ApplcationException("Error message", error);
Run Code Online (Sandbox Code Playgroud)
内部异常将保留其堆栈跟踪。
| 归档时间: |
|
| 查看次数: |
1358 次 |
| 最近记录: |