Java是采用面向对象的方式处理异常,过程如下:
1.抛出异常:
执行一个方法时,如果发生了异常,该方法会生成代表异常的一个对象,停止当前的执行路径,把这个异常对象提交给JRE。
2.捕获异常:
JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。
Java的JDK中定义了很多异常类,如果内置的异常类不够满足需求,还可以自己创建异常类。Java中所有的异常对象都是派生于Throwable类的一个实例,不同的异常用不同的Java表示。
Throwable派生了两个子类:Error和Exception
Error是程序无法处理的错误,一般是较为严重的问题,大多数错误跟敲代码者无关,表示代码运行时JVM出现的问题。Error出现代表JVM已经处于不可恢复的崩溃状态,不用管它。
Exception是程序能够处理的异常,它是所有异常类的父类,对应了各种各样可能出现的异常事件。
Exception异常:1.运行时异常(RuntimeException) 2.已检查异常(CheckedException)
CheckedException有:
try-catch-finally 1.即使try和catch块中存在return语句,finally语句也会执行。是在执行完finally语句后再通过return退出。 2.finally语句块只有一种情况是不会执行的,那就是在执行finally之前遇到了System.exit(0)结束程序运行。
throws 1.方法重写中声明异常原则:子类重写父类方法时,如果父类方法有声明异常,那么子类声明的异常范围不能超过父类声明的范围。
来源:CSDN
作者:Atobe.keigo
链接:https://blog.csdn.net/qq_29259051/article/details/103774400