我有一个包含多种方法的类,并且希望为所有方法提供一个异常处理程序。
这些方法有很多,而且它们有不同的参数,为每个方法都编写 try/catch 会很丑陋。
您是否知道一种方法,我可以通过在类异常处理程序中使用一个来处理所有这些异常处理程序。
UPDATE:
很多人问我为什么。原因是我正在用各种方法调用数据源。
所以我的类有函数 getData1、gedData2、getData3、getData4、...、getDataN。问题是无法检查连接是否仍然打开,并且创建新连接的成本非常非常高。因此,我尝试重用连接,如果下一次调用的连接失败,我会捕获此错误并重新连接并重试。这就是为什么我需要这个 try/catch all 块。
对所有函数执行此操作:
try{
datasource.getData()
}
catch(ConnectionException)
{
datasource.Connect();
datasource.getData()
}
Thanks
您可以使用委托将方法的代码传递到单个 try catch 中,如下例所示:
private void GlobalTryCatch(Action action)
{
try
{
action.Invoke();
}
catch (ExpectedException1 e)
{
throw MyCustomException("Something bad happened", e);
}
catch (ExpectedException2 e)
{
throw MyCustomException("Something really bad happened", e);
}
}
public void DoSomething()
{
GlobalTryCatch(() =>
{
// Method code goes here
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)