Dro*_*per 27
我不认为有一个技巧可以避免异常,但您可以使用以下代码片段:
public void IgnoreExceptions(Action act)
{
try
{
act.Invoke();
}
catch { }
}
Run Code Online (Sandbox Code Playgroud)
使用该方法如下:
IgnoreExceptions(() => foo());
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是使用AOP(面向方面编程) - 有一个名为PostSharp的工具,它允许您创建一个属性,该属性将捕获特定程序集/类/方法中的所有异常,这更接近您正在寻找的内容.
你可以用AOP做到这一点.例如,Postsharp将允许您轻松实现此类属性,该属性将跳过应用此类属性的方法中的特定异常.没有AOP我没有看到任何好的方法(如果我们假设有一个很好的方法来做这些事情;)).
使用Postsharp,您将能够以这种方式装饰您的方法:
[IgnoreExceptions(typeof(NullReferenceException), typeof(StackOverflowException))]
void MyMethod() { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45272 次 |
| 最近记录: |