我在复现我们错误日志中看到的一些错误时遇到了麻烦。
如果我知道一个特定方法在抛出异常时使用的记录ID,那么它就可以变得更加容易。
我们所有未处理的异常都由全局异常处理程序处理,该处理程序将异常的所有细节以及HTTP请求的所有细节放入日志表中。
有没有一种方法可以捕获抛出异常的方法的所有参数值?或者更好的是,堆栈跟踪上所有的值?
我在复现我们错误日志中看到的一些错误时遇到了麻烦。
如果我知道一个特定方法在抛出异常时使用的记录ID,那么它就可以变得更加容易。
我们所有未处理的异常都由全局异常处理程序处理,该处理程序将异常的所有细节以及HTTP请求的所有细节放入日志表中。
有没有一种方法可以捕获抛出异常的方法的所有参数值?或者更好的是,堆栈跟踪上所有的值?
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);
}
}
我会在抛出异常的方法中捕获异常,收集您的参数和任何其他所需信息,然后使用新的ApplicationException或其他自定义异常重新抛出错误,其中包含您的附加信息。
MethodParams
是指名称和类型,而不是值。例如,at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable'1 source, Func'2 keySelector, Func'2 elementSelector, IEqualityComparer'1 comparer)
。 - Axarydax
Pex
这样的测试工具非常聪明,可以在代码中找到边缘情况。 - oɔɯǝɹ