我知道这不是做这件事的方法,而且它一点也不干净。我只是想知道这是否可能。
如果我有一个包含一堆方法的类
public class Foo {
methodA() {}
methodB() {}
methodC() {}
}
有没有可能捕获所有可能发生的异常,而不必在每个方法中编写try/catch?
发布于 2011-05-06 20:22:35
您可以编写一个更高阶的函数来处理异常,这将使其更加简洁。
private T FooExceptionHandler(Func<T> function)
{
try
{
return function();
}
catch
{
//handle it
}
}
如果没有返回值,可以用Action替换Func。在函数之外,您可以通过两种方式使用它:
FooExceptionHandler(MethodA);
或者在每个函数中:
MethodA()
{
return FooExceptionHandler(()=>
{
//Function body goes here
});
}
发布于 2011-05-06 20:17:52
不,没有。try
/catch
块只能出现在方法中。但是,您可以使用某种AOP框架来自动生成这些块。postcrap是一个非常轻量级的面向方面程序设计组件。
发布于 2011-05-06 20:19:41
你可以在调用这些方法的函数中处理它...
https://stackoverflow.com/questions/5911257
复制相似问题