目录
一、什么是异常
异常就是程序上的错误导致的非正常情况
二、异常的分类
在java中,通过Throwable及其子类描述各种不同的异常类型,如下图:
2.1 Error
Error是程序无法处理的错误,大多数错误与代码执行的操作无关,更多的是JVM运行时出现的问题,比如JVM内存不足。Error在应用程序的控制和处理能力之外,所以编写程序时不需要试图去处理这类异常引起的异常情况
2.2Exception
Exception是程序本身可以处理的异常,包括运行时异常(runtimeException)和检查异常(CheckedException)。
检查异常(CheckedException):Java编译器会检查这些异常是否被处理,否则编译不会通过
运行时异常(runtimeException):Java编译器不会检查这些异常是否被处理。
三、异常处理机制
抛出异常->捕获异常->处理异常。
3.1异常处理
注意:1.catch中有return的话,也会执行完finally里面的代码才会return
2.在catch中可以加System.exit(1)终止程序的运行
四、声明异常 -throws
如果一个方法可能会出现异常,但是没有能力处理,可以在方法声明处用thorws句子声明抛出异常,由上级的调用方出处理。如果一直到main函数都没有处理,会交到给jvm处理,jvm打印完异常的跟踪栈信息后,会中止程序运行。
五、抛出异常 --throw
利用throw可以在程序中手动抛出异常,throw抛出异常后有两种处理方法:
1.自己抛出对象,自己用try catch处理
2.自己抛出异常对象,在方法声明异常,由调用者处理
六、自定义异常
所谓自定义异常,就是定义一个类,去继承Throwable类或者它的子类。
七、异常链
捕获一个异常后抛出另一个异常,并把原始异常信息逐层向上抛出。