- 编译时能被发现的是必须加上try catch的异常,这些异常在编译时可以被发现,如果异常编译时不一定发生,如除以0异常,指针为空异常。
- JAVA异常是在java程序运行的时候遇到非正常的情况而创建的对,它封装了异常信息。java异常的根类为java.lang.Throwable,整个类有两个直接子类java.lang.Error和java.lang.Exception。
-Error是程序本身无法恢复的严重错误,一般是虚拟机或者系统运行出现错误,和程序无关。 - Exception-则表示可以被程序捕获并处理的异常错误。
- JVM用方法调用栈来跟踪每个线程中一系列的方法调用过程,栈是线程私有的,每一个线程都有一个独立的方法调用栈,该栈保存了每个调用方法的信息。当一个新方法被调用的时候,JVM会把描述该方法的栈结构置入栈顶,位于栈顶的方法为正在执行的方法。当一个JAVA方法正常执行完毕,JVM会从调用栈中弹出该方法的栈结构,然后继续处理前一个方法。如果java方法在执行代码的过程中抛出异常,JVM必须找到能捕获异常的catch块代码,它首先查看当前方法是否存在这样的catch代码块,如果存在就执行该 catch代码块,否则JVM会调用栈中弹处该方法的栈结构,继续到前一个方法中查找合适的catch代码块。最后如果JVM向上追到了当前线程调用的第一个方法(如果是主线程就是main方法),仍然没有找到该异常处理的代码块,该线程就会异常终止。如果该线程是主线程,应用程序也随之终止,此时JVM将把异常直接抛给用户,在用户终端上会看到原始的异常信息。
关于java异常处理
最新推荐文章于 2023-03-13 17:45:15 发布