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
{ }

如上面的代码所示,一个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
{
}

C# 6.0:Exception Filter——带条件的异常处理的更多相关文章

  1. 序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询

    查询窗口中可以设置很多查询条件 表单中输入的内容转为datagrid的load方法所需的查询条件向原请求地址再次提出新的查询,将结果显示在datagrid中 转换方法看代码注释 <td cols ...

  2. sqlalchemy带条件查询相关应用

    sqlalchemy带条件查询 filter_by与filter filter_by 与filter的区别: 1. filter_by只能取值= filter可以==,!=,>=,<=等多 ...

  3. mysq带条件的分页查询数据结果错误

    记一次mysql分页条件查询的结果出错: 以一张用户表为例,首先我们看表中的所有数据,注意红色框住的部分: 我们使用不带条件的分页查询来查询,数据显示是OK的: SELECT id,login_nam ...

  4. 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener

    =================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...

  5. laravel带条件查询手动分页

    后台php代码: //手动分页 $users = $kaoqin; //打算输出的数组,二维 $perPage = 10; if ($request->has('page')) { $curre ...

  6. springboot+thymeleaf+pageHelper带条件分页查询

    html层 <div> <a class="num"><b th:text="'共 '+ ${result.resultMap['pages ...

  7. Excel带条件求和——SUMIF函数

    老婆求帮忙,问Excel中怎么跨Sheet带条件求和,就是关于sheet2中筛选出来的数据自动合计在sheet3中 . 比如有个sheet2表中的数据如下: 现在要在sheet3中求合计, 通过分析可 ...

  8. laravel 带条件的分页查询

    laravel 带条件的分页查询, 原文:http://blog.csdn.net/u011020900/article/details/52369094 bug:断点查询,点击分页,查询条件消失. ...

  9. thinkphp 带条件分页查询

    thinkphp 带条件分页查询:form表单传值时候,method='get'. 用 get 传值

随机推荐

  1. Mysql 大量Sleep 解决

    排查 SHOW GLOBAL VARIABLES LIKE 'wait_timeout'; SHOW GLOBAL VARIABLES LIKE 'interactive_timeout'; 在线更新 ...

  2. Android大作业

    1.项目成员 邓乾尧 学号:1600802005 班级:161  博客:http://www.cnblogs.com/2575590018dqy/ 韦家城 学号:1600802026 班级:161  ...

  3. 数据下载报getColNameByTableName这个指向异常

    java.lang.NullPointerException at cn.com.burgeon.tasks.webpos.DateGeneration2.getColNameByTableName( ...

  4. Java线程的创建及启动

    1.继承Thread类,重写该类的run()方法. package samTest; import java.util.Scanner; /** * Created by Sam on 2018-01 ...

  5. js bind0

    $(function(){ $("#ul").on('click','li',function(){ if(!$(this).a $(function(){ $("#ul ...

  6. oracle追加表空间

    ----查询表空间使用情况--- SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)&q ...

  7. s21day17 python笔记

    s21day17 python笔记 一.内容回顾及补充 回顾 补充 第三方模块补充 需要下载安装后才能导入使用 安装方式: pip包管理工具 # 把pip.exe 所在的目录添加到环境变量中. pip ...

  8. 前端上传图片回显并用base64编码,后端做解码储存,存储图片路径在.properties文件中配置(以上传身份证照片为例)

    前端页面:<form id="kycForm" enctype="multipart/form-data"> <input type=&quo ...

  9. mininet的学习之三----------mininet中流表应用实战

    我们看的同一个视频,工整的整理见以下网址 https://blog.csdn.net/weixin_36372879/article/details/86371583#commentBox

  10. mybatis一级缓存

    在select  处添加useCache=false flushCache=true, mybatis默认开启一级缓存