当前位置: 首页 > 编程语言 > C#

GetParameterValuesinStackTrace分享

时间:2023-04-10 18:02:23 C#

GetParameterValuesinStackTrace我无法重现我们在错误日志中看到的一些错误。如果我知道在抛出异常时特定方法使用了哪个记录ID,事情可能会更容易。我们所有未处理的异常都由我们的全局异常处理程序处理,它将异常的所有详细信息和HTTP请求的所有详细信息放入日志表中。有没有办法捕获抛出异常的方法所有参数的值?或者更好的是,堆栈跟踪中的所有值?不幸的是,这是不可能的:当您在处理程序中捕获异常时,所有带有方法参数的堆栈帧都会消失。控件离开您的函数后,您将无法再访问其参数值。由于您知道发生崩溃的特定函数,因此您可以在那里设置异常处理程序以收集所有感兴趣的参数并重新抛出包装的异常。诊断完成后,您可以将代码恢复正常:voidSuspiciousFunction(stringname,longcount){try{//函数的代码放在这里}catch(Exceptione){varargs=newDictionary{{“姓名”,姓名},{“计数”,计数}};抛出新的MySpecialException(e,args);我会在抛出它的方法中捕获异常,收集参数和任何其他需要的信息,然后使用新的ApplicationException或包含带有附加信息的附加自定义异常来重新抛出错误。从Environment.StackTrace的文档中我会说这是可能的。他们说每个方法调用的堆栈跟踪信息采用以下格式:“inFullClassName.MethodName(MethodParams)inFileName:lineLineNumber》以上就是C#学习教程:获取堆栈跟踪中的参数值共享,如果对大家有用,需要进一步了解C#学习教程,希望大家多多付出注意——本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处: