转自: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中,异常分为受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。 受检异常是那些在编译时需要处理的异常,比如IOException或ClassNotFoundException。如果在方法中可能出现这些异常,...
本文将深入探讨Java异常的相关知识点,包括Java异常简介、异常架构、受检异常与非受检异常,以及Java异常处理的关键字。 1. Java异常简介: Java异常是程序在执行过程中遇到的不正常情况,它通过异常对象来表示。...
Java异常处理机制可以分为受检异常和非受检异常两类。受检异常是编译器要求必须处理的异常,例如IOException、ClassNotFoundException等。非受检异常是编译器不会检查的异常,例如RuntimeException和Error等。 在...
受检异常和非受检异常。Java 语言中异常可以分为两类:受检异常(checked exception)和非受检异常(unchecked exception)。受检异常是编译器会检查的异常,例如IOException、SQLException等,而非受检异常是编译器...
其次,异常(Exception)是程序可以处理的非正常情况,异常又可以细分为两大子类:受检异常和非受检异常。受检异常是在编译时期强制要求程序员处理的异常,如果代码中可能抛出这类异常,则必须使用try-catch块来捕获...
- `Exception` 是程序运行过程中可预见的错误,可以被程序员处理,分为受检异常(Checked Exception)和非受检异常(Unchecked Exception)。 2. **受检异常与非受检异常** - 受检异常如`IOException`,必须在...
- 运行时异常和受检异常的区别在于运行时异常不需要强制捕获,而受检异常需要。 - JVM在遇到异常时会生成堆栈跟踪,然后尝试找到合适的`catch`块来处理异常,如果没有处理,异常将逐层向上抛出,直到被处理或导致...
70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常Java 程序设计语言提供了三种 throwable:受检异常(checked exceptions
2. **Exception(异常)**:这是最常见的异常类型,分为受检异常和非受检异常。受检异常如`IOException`,需要在方法签名中用`throws`声明,否则编译器会报错。非受检异常(也称为运行时异常),如`...
2. **运行时异常与受检异常的区别**:运行时异常是RuntimeException及其子类,编译器不会强制检查,但建议尽可能处理。受检异常是Exception类的其他子类,编译器会强制要求处理,否则编译不通过。 3. **JVM处理异常...
70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常Java 程序设计语言提供了三种 throwable:受检异常(checked exceptions
- **Exception**:这些是可以被程序捕获和处理的异常,分为受检异常(需要在方法声明中使用`throws`关键字)和非受检异常(如运行时异常,不需要显式声明)。 2. **受检异常与非受检异常**: - **受检异常**...
非受检异常,如`NullPointerException`,是程序逻辑错误,Java编译器不会强制要求处理,但建议最好进行捕获。 Java异常处理的关键字包括`throw`和`throws`。`throw`用于主动抛出一个异常,而`throws`则用于声明一个...
- **非受检异常**:包括运行时异常和错误,编译器在编译时不强制处理。对于非受检异常,程序员可以选择忽略或处理。 6. **异常处理策略** - 使用`try-catch-finally`:在可能抛出异常的代码块周围使用`try`,然后...
Java中的异常分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions),每种类型下又有许多具体的异常子类。 ### 受检异常 受检异常是在编译时必须处理的异常,程序员必须显式地声明这些...
Java中的异常类主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions),这两类异常均继承自`Throwable`类。 - **受检异常(Checked Exceptions)**: - 这类异常在编译阶段就必须...
非受检异常(unchecked exception)则指那些编译器不强制要求处理的异常,包括运行时异常和所有Error类的异常。这类异常可以不被捕获或声明抛出,即使出现,编译也会正常通过。 Java异常处理的关键字主要包括try、...
这些错误是不受检异常,非代码性错误。 Exception(异常)是程序本身可以捕获并且可以处理的异常。Exception 又分为两类:运行时异常和编译时异常。运行时异常定义:RuntimeException 类及其子类,表示 JVM 在运行...
Java中的异常处理机制主要分为两大类:**受检异常(Checked Exception)** 和 **非受检异常(Unchecked Exception)**。 - **受检异常**:这类异常必须被显式处理或声明抛出,常见的如`IOException`。 - **非受检...