Nei*_*l N 9 .net c# asp.net error-handling asp.net-mvc
我无法再现我们在错误日志中看到的一些错误.
如果我知道特定方法在抛出异常时使用了哪个记录ID,那么可以更轻松.
我们所有未处理的异常都由我们的全局异常处理程序处理,它将异常的所有细节以及HTTP请求的所有细节放入日志表中.
有没有办法捕获引发异常的方法的所有参数的值?或者甚至更好,堆栈跟踪中的所有值?
das*_*ght 12
不幸的是,这是不可能的:当你在处理程序中捕获异常时,所有带有方法参数的堆栈帧都消失了.控件离开您的函数后,您将无法再访问其参数值.
由于您知道崩溃发生的具体功能,您可以在那里设置一个异常处理程序来收集所有感兴趣的参数,并重新抛出一个包装的异常.诊断完成后,您可以将代码恢复为正常:
void SuspiciousFunction(string name, long count) {
try {
// The code of your function goes here
} catch (Exception e) {
var args = new Dictionary<string,object> {
{ "name" , name }
, { "count", count }
};
throw new MySpecialException(e, args);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4243 次 |
最近记录: |