`
LeoChen_
  • 浏览: 876 次
社区版块
存档分类
最新评论

Java受检异常和非受检异常(转)

    博客分类:
  • java
阅读更多

 

转自:http://blog.csdn.net/nlznlz/article/details/53271045

 

Java中异常的分类

所有异常,都继承自java.lang.Throwable类。

Throwable有两个直接子类,Error类和Exception类。

Exception

Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。

异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种

RuntimeException

RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部分RuntimeException。

RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需throws子句中进行声明。(java api)

它是uncheckedExcepiton。

Java.lang.ArithmeticException

Java.lang.ArrayStoreExcetpion

Java.lang.ClassCastException

Java.lang.EnumConstantNotPresentException

Java.lang.IllegalArgumentException

Java.lang.IllegalThreadStateException

Java.lang.NumberFormatException

Java.lang.IllegalMonitorStateException

Java.lang.IllegalStateException

Java.lang.IndexOutOfBoundsException

Java.lang.ArrayIndexOutOfBoundsException

Java.lang.StringIndexOutOfBoundsException

Java.lang.NegativeArraySizeException’

Java.lang.NullPointerException

Java.lang.SecurityException

Java.lang.TypeNotPresentException

Java.lang.UnsupprotedOperationException

CheckedException

除了runtimeException以外的异常,都属于checkedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。

一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有checkedException。

Java.lang.ClassNotFoundException

Java.lang.CloneNotSupportedException

Java.lang.IllegalAccessException

Java.lang.InterruptedException

Java.lang.NoSuchFieldException

Java.lang.NoSuchMetodException

Error

当程序发生不可控这种错误时,通常的做法是通知用户并中止程序的执行。

与异常不同的是Error及其子类的对象不应被抛出。

Error 是 Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。

在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。

它是uncheckedExcepiton。

 

分享到:
评论

相关推荐

    Java并发编程示例(八):处理线程的非受检异常

    在Java中,异常分为受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。 受检异常是那些在编译时需要处理的异常,比如IOException或ClassNotFoundException。如果在方法中可能出现这些异常,...

    Java异常面试题 33道1

    本文将深入探讨Java异常的相关知识点,包括Java异常简介、异常架构、受检异常与非受检异常,以及Java异常处理的关键字。 1. Java异常简介: Java异常是程序在执行过程中遇到的不正常情况,它通过异常对象来表示。...

    Java异常面试题 33道.pdf

    Java异常处理机制可以分为受检异常和非受检异常两类。受检异常是编译器要求必须处理的异常,例如IOException、ClassNotFoundException等。非受检异常是编译器不会检查的异常,例如RuntimeException和Error等。 在...

    java异常有关的习题.docx

    受检异常和非受检异常。Java 语言中异常可以分为两类:受检异常(checked exception)和非受检异常(unchecked exception)。受检异常是编译器会检查的异常,例如IOException、SQLException等,而非受检异常是编译器...

    java异常分类.pdf

    其次,异常(Exception)是程序可以处理的非正常情况,异常又可以细分为两大子类:受检异常和非受检异常。受检异常是在编译时期强制要求程序员处理的异常,如果代码中可能抛出这类异常,则必须使用try-catch块来捕获...

    (2条消息) Java异常面试题(2020最新版)_ThinkWon的博客-CSDN博客_java异常面试题1

    - `Exception` 是程序运行过程中可预见的错误,可以被程序员处理,分为受检异常(Checked Exception)和非受检异常(Unchecked Exception)。 2. **受检异常与非受检异常** - 受检异常如`IOException`,必须在...

    Java异常面试题 Java异常面试题

    - 运行时异常和受检异常的区别在于运行时异常不需要强制捕获,而受检异常需要。 - JVM在遇到异常时会生成堆栈跟踪,然后尝试找到合适的`catch`块来处理异常,如果没有处理,异常将逐层向上抛出,直到被处理或导致...

    ihukaijun#effective-java-3rd-chinese#70. 对可恢复的情况使用受检异常,对编程错误使用运行

    70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常Java 程序设计语言提供了三种 throwable:受检异常(checked exceptions

    Java异常面试题(2020最新版).docx

    2. **Exception(异常)**:这是最常见的异常类型,分为受检异常和非受检异常。受检异常如`IOException`,需要在方法签名中用`throws`声明,否则编译器会报错。非受检异常(也称为运行时异常),如`...

    10道Java常见异常面试题含答案(很全)

    2. **运行时异常与受检异常的区别**:运行时异常是RuntimeException及其子类,编译器不会强制检查,但建议尽可能处理。受检异常是Exception类的其他子类,编译器会强制要求处理,否则编译不通过。 3. **JVM处理异常...

    jicheng400#effective-java-3rd-chinese#70. 对可恢复的情况使用受检异常,对编程错误使用运

    70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常Java 程序设计语言提供了三种 throwable:受检异常(checked exceptions

    Java异常面试题(2024最新版).docx

    - **Exception**:这些是可以被程序捕获和处理的异常,分为受检异常(需要在方法声明中使用`throws`关键字)和非受检异常(如运行时异常,不需要显式声明)。 2. **受检异常与非受检异常**: - **受检异常**...

    03-Java异常面试题目

    非受检异常,如`NullPointerException`,是程序逻辑错误,Java编译器不会强制要求处理,但建议最好进行捕获。 Java异常处理的关键字包括`throw`和`throws`。`throw`用于主动抛出一个异常,而`throws`则用于声明一个...

    Java异常面试题 33道

    - **非受检异常**:包括运行时异常和错误,编译器在编译时不强制处理。对于非受检异常,程序员可以选择忽略或处理。 6. **异常处理策略** - 使用`try-catch-finally`:在可能抛出异常的代码块周围使用`try`,然后...

    JAVA异常分类.txt

    Java中的异常分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions),每种类型下又有许多具体的异常子类。 ### 受检异常 受检异常是在编译时必须处理的异常,程序员必须显式地声明这些...

    Java异常处理.md

    Java中的异常类主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions),这两类异常均继承自`Throwable`类。 - **受检异常(Checked Exceptions)**: - 这类异常在编译阶段就必须...

    Java异常面试题全部资源

    非受检异常(unchecked exception)则指那些编译器不强制要求处理的异常,包括运行时异常和所有Error类的异常。这类异常可以不被捕获或声明抛出,即使出现,编译也会正常通过。 Java异常处理的关键字主要包括try、...

    03-Java异常面试题.docx

    这些错误是不受检异常,非代码性错误。 Exception(异常)是程序本身可以捕获并且可以处理的异常。Exception 又分为两类:运行时异常和编译时异常。运行时异常定义:RuntimeException 类及其子类,表示 JVM 在运行...

    java异常专题.txt

    Java中的异常处理机制主要分为两大类:**受检异常(Checked Exception)** 和 **非受检异常(Unchecked Exception)**。 - **受检异常**:这类异常必须被显式处理或声明抛出,常见的如`IOException`。 - **非受检...

Global site tag (gtag.js) - Google Analytics