C# 6.0:Exception Filter——带条件的异常处理

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

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

C# 6.0:Exception Filter——带条件的异常处理
try
{
    // Some exception
}
catch (Exception e) if (e.InnerException != null)
{
    // handle the exception
}
finally
{

}
View Code

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

C# 6.0:Exception Filter——带条件的异常处理
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

 

C# 6.0:Exception Filter——带条件的异常处理

上一篇:c# 冒号 :


下一篇:C# 获取磁盘空间大小的方法