校园网站建设的作用,东莞人才网求职,湖南住房城乡建设厅官方网站,wordpress导入采集文章Java的可检测异常和非检测异常泾渭分明。可检测异常经编译器验证#xff0c;对于声明抛出异常的任何方法#xff0c;编译器将强制执行处理或声明规则。非检测异常不遵循处理或声明规则。在产生此类异常时#xff0c;不一定非要采取任何适当操作#xff0c;编译器不会检查是…Java的可检测异常和非检测异常泾渭分明。可检测异常经编译器验证对于声明抛出异常的任何方法编译器将强制执行处理或声明规则。非检测异常不遵循处理或声明规则。在产生此类异常时不一定非要采取任何适当操作编译器不会检查是否已解决了这样一个异常。有两个主要类定义非检测异常RuntimeException和Error。为什么Error子类属于非检测异常这是因为无法预知它们的产生时间。若Java应用程序内存不足则随时可能出现OutOfMemoryError起因一般不是应用程序中的特殊调用而是JVM自身的问题。另外Error类一般表示应用程序无法解决的严重问题故将这些类视为非检测异常。RuntimeException类也属于非检测异常一个原因是普通JVM操作引发的运行时异常随时可能发生。与Error不同此类异常一般由特定操作引发。但这些操作在Java应用程序中会频繁出现。例如若每次使用对象时都必须编写异常处理代码来检查null引用则整个应用程序很快将变成一个庞大的try-catch块。因此运行时异常不受编译器检查与处理或声明规则的限制。将RuntimeException类作为未检测异常还有一个原因它们表示的问题不一定作为异常处理。可以在try-catch结构中处理NullPointerException但若在使用引用前测试空值则更简单更经济。同样可以在除法运算时检查0值而不使用ArithmeticException。