我有一个方法,如:
public TResult DoSomethingWithLogging<TResult>(Func<TResult> someAction)
{
try
{
return someAction.Invoke();
}
catch (Exception ex)
{
LogException(ex)
throw;
}
Run Code Online (Sandbox Code Playgroud)
该方法使用如下:
var result = DoSomethingWithLogging(() => Foo());
Run Code Online (Sandbox Code Playgroud)
我还想记录内部捕获的异常Foo().我不能throw在catch里面使用Foo.
我怎么能抓住这样的例外?
例:
public static string Foo()
{
try
{
return "Foo";
}
catch (Exception)
{
// I have to log this exception too without adding anything to Foo
return "Exception caught";
}
}
Run Code Online (Sandbox Code Playgroud) 如果没有使用分析器,在运行程序中是否有任何方法可以检测到第一次机会异常?理想情况下,我想记录一旦catch块接管最终异常后不可用的更详细的状态信息.