余文

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

C#6.0 对异常处理有两处改进,一个是在上一篇文章中我们讨论了的在catch和finally中使用await,另一个是exception filter。在catch和finally中使用await是一个开发者欢迎的功能,无疑exception filter是另一个给开发者处理异常带来极大便利的新功能。那么神秘是exception filter那?它是一个通过返回true或false到catch块中的条件语句帮助我们过滤筛选exception的功能。

下面的代码块是一个exception filter的简单说示例。

try
{
    // Some exception
}
catch (Exception e) if (e.InnerException != null)
{
    // handle the exception
}
finally
{

}
View Code

如上面的代码所示,一个if语句添加到了exception的后面。它表示catch块中的代码只在这个if条件为true的时候执行。我们使用不同的条件来定义多个catch块。随着一级级执行,它们也会一个个的被调用。

try
{
    // Some exception
}
catch (InvalidOperationException ioe) if (Condition1)
{
    // handle the exception
}
catch (FieldAccessException fae) if (Condition2)
{
    // handle the exception
}
catch(Exception exp)
{

}
finally
{
}
View Code

 

posted on 2014-12-19 10:22  余文  阅读(1120)  评论(0编辑  收藏  举报