2019独角兽企业重金招聘Python工程师标准>>>

如果方法抛出的异常和外层执行任务没有明显的联系,会使人很困惑

  • 更高层实现应该捕获底层异常,并且抛出按照高层逻辑进行解释的异常

如果底层的异常对于调试有帮助,可以考虑使用异常链

  • 高级异常的构造需要低级异常作为参数传入

  • 大部分标准异常都支持链的构造器

  • 对于不支持的,可以使用Throwable initCause来实现

    • getCause 获取原因
    • 还可以使用堆栈轨迹,集成到更高级的异常

尽管异常转译比不加思索的抛出底层异常有所改进,但是也请不要滥用

  • 在调用底层异常时,多做些检查,确保其执行正常,从而避免抛出异常

如果无法避免底层异常,次选方案是让高层绕过,使用某种适当的记录机制将异常记录下来

总而言之::异常转译和异常链都不错

  • 异常转译使得异常语义更加明确
  • 异常链,允许逐层进行分析

转载于:https://my.oschina.net/u/3847203/blog/2245899

抛出与抽象相对应的异常(61)相关推荐

  1. Effective Java之抛出与抽象相应的异常(六十一)

    1.如何处理异常? 方法B抛出了一个受检的异常 ,那么方法A在内部调用方法B时,面对方法B抛出的受检异常,可以选择继续抛出向上传播这个异常,也可以捕获这个异常进行处理.究竟是向上传播抛出,还是捕获处理 ...

  2. java异常在哪一层捕获_当在一个方法的代码中抛出一个检测异常时,该异常或被方法中的 ( )结构 捕获,或者在方法的 ( ) 中声明_学小易找答案...

    [填空题]当异常已经被定义时,必须通过( ) 语句来处理它. [填空题]Catch 子句包含( )的程序段 [单选题]下列java语言的常用异常类中,属于检测异常的是() [单选题]自定义异常类时,可 ...

  3. 启动HBase抛出org.apache.hadoop.hbase.ClockOutOfSyncException异常:hmaster正常,节点hregionserver启动失败

    启动HBase抛出org.apache.hadoop.hbase.ClockOutOfSyncException异常 原因 节点间时间不一致,时间同步出了问题: 解决 进行时间同步: [root@cm ...

  4. weblogic启动后,抛出大量的java.lang.ArrayIndexOutOfBoundsException异常

    weblogic启动后,抛出大量的java.lang.ArrayIndexOutOfBoundsException异常 参考文章: (1)weblogic启动后,抛出大量的java.lang.Arra ...

  5. 关于用鲁大师对显卡性能进行评测时抛出“评测中切换页面”的异常的解决方案。

    第一:看一下评测时是否有其他窗口弹出,或者有其他程序的内容展示. 比如输入法的那个小语言栏(或者其他软件的内容展示),在评测时如果有的话,就会抛出"评测中切换页面"的异常. 注意: ...

  6. 添加引用方式抛出和捕获干净的WebService异常

    转载:http://www.cnblogs.com/ahdung/p/3953431.html 说明:[干净]指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message ...

  7. SSH抛出org.apache.ibatis.exceptions.PersistenceException: 异常

    抛出的异常类容如下 如果遇到这个异常,那么肯定是你在配置事物切面时出错,或者是你的写的事物的方法名称没有和这里的配置对应: 你需要注意如下几点: 1.你的名称必须是以英文开头 2.在你用着事物方法的名 ...

  8. Java异常处理学习笔记(抛出、捕获、finally、异常传播、NPE、断言、日志)

    Java中的异常是什么? Java异常本质上一种class,继承关系如下图所示,Error是严重的错误,程序无能为力,RuntimeException是在运行过程中发生的异常,其余的异常在编写程序的时 ...

  9. 关于druid数据连接池抛出的 connection holder is null 异常

    大概跑了三十分钟~~~这配置~~~这程序~~~ 然后华丽丽的报异常了~~~ 具体异常是这样的, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 DEBUG: (BaseJdbcLogg ...

最新文章

  1. AprilTag中TAG_16h5识别速率和容错率(VISP)
  2. php xmlhttp.responsetext,XMLHttpRequest中responseText怎么获取指定div的内容,而不是整个HTML的内容...
  3. mybatis必知必会一
  4. mariadb主从搭建
  5. C ++ 指针 | 指针与三维数组_6
  6. Real-time HTML Editor (实时网页编辑器)
  7. windows 安装 pip工具
  8. HTML十进制字符编号
  9. WCF 实例 —— Android 短信助手 (WCF + Android)
  10. 【语义相似度】ESIM:语义相似度领域小模型的尊严
  11. ASP.NET和ASP程序防止在IE中进行缓存
  12. js 终止 for 循环
  13. c语言编程简单教学,C语言入门教程-最简单的C程序
  14. 蝴蝶蓝暂排第一:第四届橙瓜网络文学奖20年十佳游戏大神
  15. OpenCASCADE7.6编译
  16. java上传视频并播放_javaweb中上传视频,并且播放,用上传视频信息为例
  17. OmniGraffle 制作表格 调整对象
  18. Vue中JSX的基本用法
  19. C++:亲戚(relation)
  20. pdf、caj转换成word文档(最新最有效的方法)

热门文章

  1. yum提示Another app is currently holding the yum lock
  2. Django Drops
  3. Java技术简介及Tomcat部署
  4. 清除所有多余的桌面右键菜单
  5. 如何在Outlook 2003和OWA中允许接受EXE附件
  6. CakePHP中文手册【翻译】-ACL
  7. 2能不用cuda_又有2款限定皮肤返场,不用花钱就能直接兑换!天美良心?
  8. 5、urllib.request.urlopen()
  9. upc组队赛5 Election of Evil【搜索】
  10. ElasticSearch Client详解