`
liuxinglanyue
  • 浏览: 562765 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java牛角尖【007】:Java中的Error能不能被Catch

阅读更多

网上看到很多朋友说Java中Error是无法Catch到的,而Java中定义的Error类型又很难测试到,那就估且以为确是如此吧。 
但是或许大家都有注意,我们时常会看到这样的代码 

Java代码 
  1. 1.  try{    
  2. 2.      ...    
  3. 3.  }catch(Throwable ex){    
  4. 4.      ...    
  5. 5.  }    

其中catch中直接捕捉的是一个Throwable类,打开继承关系看一下,Exception和Error两个类同样是从Throwable类继承而来,那么,也就是说Error应该是可以被捕捉的,下面写个例子证明一下猜测: 
Java代码 
  1. 1.  package net.moon.demo.errorcatch;    
  2. 2.      
  3. 3.  public class Demo {    
  4. 4.      
  5. 5.      /**  
  6. 6.       * @param args  
  7. 7.       */    
  8. 8.      public static void main(String[] args) {    
  9. 9.          // TODO Auto-generated method stub    
  10. 10.         try {    
  11. 11.             throw new MyError("My Error");    
  12. 12.         } catch (MyError e) {    
  13. 13.             System.out.println(e.getMessage());    
  14. 14.         }    
  15. 15.     }    
  16. 16.     
  17. 17. }    
  18. 18.     
  19. 19class MyError extends Error {    
  20. 20.     
  21. 21.     /**  
  22. 22.      *   
  23. 23.      */    
  24. 24.     private static final long serialVersionUID = 1L;    
  25. 25.     
  26. 26.     public MyError() {    
  27. 27.         super();    
  28. 28.         // TODO Auto-generated constructor stub    
  29. 29.     }    
  30. 30.     
  31. 31.     public MyError(String message, Throwable cause) {    
  32. 32.         super(message, cause);    
  33. 33.         // TODO Auto-generated constructor stub    
  34. 34.     }    
  35. 35.     
  36. 36.     public MyError(String message) {    
  37. 37.         super(message);    
  38. 38.         // TODO Auto-generated constructor stub    
  39. 39.     }    
  40. 40.     
  41. 41.     public MyError(Throwable cause) {    
  42. 42.         super(cause);    
  43. 43.         // TODO Auto-generated constructor stub    
  44. 44.     }    
  45. 45.     
  46. 46. }    

执行一下以上代码,正如前面的猜测,Error一样是可以捕捉的,运行代码结果为: 
Java代码 
  1. My Error    

分享到:
评论

相关推荐

    行业文档-设计装置-一种打磨成仿牛角尖外形的笔尖.zip

    在本设计装置中,我们探讨了一种创新的工艺方法,用于将笔尖打磨成仿牛角尖的外形。这种设计不仅在视觉上提供了独特的审美体验,还可能改善书写时的手感和性能。以下是对这个技术的详细阐述: 1. 设计理念:仿牛角...

    牛角包::croissant:轻巧却有用的BukkitSpigotPaper插件库

    牛角包 :croissant: 轻巧却有用的Bukkit / Spigot / Paper插件库。介绍Croissant是一个轻量级的Java库,它为Bukkit / Spigot / Paper插件提供了命令框架和GUI框架。 以下是其功能的简短摘要: 命令框架无需在插件的...

    java注解方式实现拦截接口重复提交

    在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被编译器或运行时环境用来执行特定的动作。在这个场景中,"java注解方式实现拦截接口重复提交"是为了解决一个常见的...

    elasticsearch5.3集成java所需jar包

    在Java开发中,Elasticsearch是一个非常重要的搜索引擎和分析引擎,它基于Lucene构建,提供了分布式、全文检索、实时分析的高性能数据存储解决方案。在Elasticsearch 5.3版本中,为了使其能够正常运行,我们需要集成...

    电子:中国半导体:牛角峥嵘.pdf

    首先,半导体是指那些在特定温度下导电性能介于导体和绝缘体之间的材料,常被应用于制造各种电子设备的微小组件中,如晶体管、二极管等。半导体产业是电子产业的基础,也是国家高新技术产业的重要组成部分。而中国...

    OpenOffice 实现JPG.DOC转PDF转SWF在线预览(Java版)

    在Java环境中,我们可以利用OpenOffice的Java API(称为JODConverter)来实现文件的格式转换。 1. **OpenOffice与JODConverter**: JODConverter是基于OpenOffice的Java库,允许我们通过编程方式调用OpenOffice的...

    C++编译的牛角棋

    5. **对象和类**:如果使用了面向对象编程,那么牛角棋的每个棋子和棋盘都可能被表示为类的对象。类定义了对象的属性(如棋子的位置,颜色)和行为(如移动棋子)。通过对象间的交互,实现游戏逻辑。 6. **输入/...

    牛角包:Lu Lua REPL和调试器

    《牛角包:深入理解Lu Lua REPL与调试器》 牛角包,一款专为Lua语言设计的交互式REPL(Read-Eval-Print Loop)和调试器,为程序员提供了强大的开发工具,使得在Lua编程过程中能够更加高效、便捷地进行代码测试、...

    电子:中国半导体:牛角峥嵘.zip

    描述中的“牛角峥嵘”是中国成语,用来形容事物发展势头强劲,暗示中国的半导体产业正展现出强大的竞争力和潜力。尽管没有具体的标签提供额外信息,但我们可以从文件名“电子:中国半导体:牛角峥嵘.pdf”推断,内容...

    牛角座接口接线方式及管脚对应

    牛角座接口作为一种广泛应用于电子设备中的连接器,其标准化的设计确保了不同设备间的兼容性和可靠性。本文将详细介绍牛角座接口(以HIF3B系列为例)的标准接线方式、管脚对应以及相关的技术规格,帮助读者更好地...

    牛角工具箱源码 轻松打造个性化在线工具箱

    这是一款在线工具箱程序,您可以通过安装扩展增强她的功能 通过插件模板的功能,您也可以把她当做网页导航来使用 ...牛角工具箱源码 轻松打造个性化在线工具箱 安装依赖 full包,已安装依赖,无需重复安装

    简易牛角座.IntLib

    简易牛角座.IntLib

    牛角座封装规格

    之前一直在找牛角座等各种插座的规格封装,很难找到,最后找到了

    电子:中国半导体:牛角峥嵘(2021)(173页).pdf

    电子:中国半导体:牛角峥嵘(2021)(173页).pdf

    原牛角源码(修罗bbs)全站程序打包带数据库备份

    原牛角源码(修罗bbs)全站程序打包带数据库备份,牛角源码全站数据+全站文件、插件打包分享给大家,有兴趣的可以搭建玩玩! conf文件夹中自己配置数据库链接文件,默认管理账号:admin,密码123456 首页登录后就可以...

    OUPIIN 牛角接头1001系列端子3d

    在现代工业设计和制造中,3D建模是必不可少的工具,能够提供产品的立体视图,帮助工程师进行结构分析、装配验证以及制造工艺的规划。3D模型还能用于仿真测试,确保产品在实际应用中的功能和耐用性。 【标签】"1001...

    常用牛角插座封装库(含3D)

    AD软件中常用牛角插座、简牛插座封装库,含3D效果

    牛角弯头三维CAD展开放样.pdf

    在钣金加工领域中,牛角弯头是一种特殊的弯管部件,主要用于输送管道系统中,以便连接不同直径的管道或调整管道方向。牛角弯头通常由多个圆锥形的管节组成,每个管节都有一定的弯曲角度和长度。由于其结构的复杂性,...

    牛角IDC2.54端子3D封装库

    在电子设计领域,3D封装库是至关重要的资源,它为电路设计师提供了真实感的元器件模型,使得在PCB布局布线时能更直观地理解元件的空间尺寸和形状。"牛角IDC2.54端子3D封装库"就是这样一个专用于电子设计的工具集,...

Global site tag (gtag.js) - Google Analytics