欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Exception与Error的区别?

程序员文章站 2022-07-13 09:09:55
...

Java语言在设计之初就提供了相对完善的异常处理机制,这种机制大大降低了编写和维护可靠程序的门槛,这也是Java得以大行其道的原因。

 

Exception与Error

Exception与Error都继承自Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch)。Exception和Error体现了Java平台设计人员对不同异常情况的分类。

 

Error

Error是指正常情况下不大可能出现的情况,绝大部分的Error都会导致程序处于非正常的、不可恢复的状态。既然是非正常情况,所以不便于也不需要捕获,常见的如OutOfMemoryError等。

 

Exception

Exception是程序正常运行中可以预料的意外情况,可以被捕获并进行相应的处理。

Exception又分为检查(checked)异常和非检查(unchecked)异常。检查异常在源代码中必须显示的捕获,这是编译器检查的一部分。不检查异常就是所谓的运行时异常,类似NullPointerException、ArrayIndexOutOfBondsException之类,通常是可以编码避免的逻辑错误,可以根据需要来自行判断是否需要捕获,不会在编译期进行检查。

 

异常处理

在日常编程中如何处理好异常?可以从以下两个方面着手。

1、理解Throwable、Exception、Error的设计和分类。比如,掌握那些应用最广泛的子类,以及如何自定义异常等。

Exception与Error的区别?
            
    
    博客分类: java java异常 

问:NoClassDefFopndError和ClassNotFoundException有什么区别?

 

2、理解Java语言中操作Throwable的元素和实践。掌握基本语法是必须的,如Try-catch-finally块,throw、throws关键字等,异常处理代码比较繁琐,比如我们需要写很多千篇一律的捕获代码,或者在finally做一些资源回收的工作。随着Java语言的发展,引入了一些更加便利的特性,比如 try-with-resources和multiple catch等。

 

最佳实践

1、尽量不要捕获类似Exception这样通用的异常,而是应该捕获特定异常。除非深思熟虑,否则不要直接捕获Throwable或者Error。

 

2、不要生吞(swallow)异常。生吞异常很可能会导致非常难以诊断的诡异情况,不利于异常排查和问题跟踪。

 

 

  • Exception与Error的区别?
            
    
    博客分类: java java异常 
  • 描述: 异常分类
  • 大小: 19.4 KB
相关标签: java异常