异常处理概念
什么是异常?
异常是指在程序程序运行过程中,出现的非正常情况,以至于程序中断的一些行为。
什么是异常处理?
异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?
Java提供了更加优秀的解决办法:异常处理机制。
异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。
java中的的异常分类:
1、Throwable结构。

Throwable:是java异常的顶级类,所有异常都继承于这个类,Error,Exception是异常类的两个大分类。
Error(错误):程序无法处理,通常指程序中出现的严重问题。
例如java.lang.VirtualMachineError(Java虚拟机运行错误):当 Java虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误
例如java.lang.StackOverflowError(栈溢出错误):当应用程序递归太深而发生堆栈溢出时,抛出该错误。
例如java.lang.OutOfMemoryError(内存溢出):内存溢出或没有可用的内存提供给垃圾回收器时,产生这个错误。
Error(错误)是不可查的,而且也常常在应用程序的控制和处理能力之外,因此当Error(错误)出现时,程序会立即奔溃,Java虚拟机立即停止运行。
Exception(异常):是指程序本身可以处理的异常(可以向上抛出或者捕获处理)。
Java处理异常的默认方式是中断处理。
以java.lang.NullPointerException为例,当程序出现空指针异常时,会创建一个空指针异常对象,并向外抛出,并被虚拟机捕获,从而导致程序中断执行。
2、可检查与非检查异常。
1、可检查异常(checked exceptions)是程序运行过程中很容易出现的的异常情况,编译器要求必须捕获处理。这种错误在一定程度上是可以预见的,如IOException,FileNotFoundException等。 2、不可检查异常(unchecked exceptions)是编译器不强制要求处理的异常,主要包括运行时异常(RuntimeException与其子类)和错误(Error)。
3、运行与非运行异常。
1、运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等。 2、非运行时异常(编译时异常):是RuntimeException以外的异常,类型上都属于Exception类及其子类。
4、自定义异常。
用户自己定义的异常类。自定义异常类必须继承Exception类或实现其子接口。
在编码规范上,一般将自定义异常类的类名命名为 XXXException,其中 XXX 用来代表该异常的作用。
自定义异常类一般包含两个构造方法:一个是无参的默认构造方法,另一个构造方法以字符串的形式接收一个定制的异常消息,并将该消息传递给超类的构造方法。

浙公网安备 33010602011771号