java exception
java exception是什么呢?下面就让我们一起来了解一下吧:
java中的exception一般来说是代表异常,而异常也就是属于异常机制,异常机制指的是当程序出现了错误之后,程序需要如何处理。简单来说,就是异常机制提供了程序退出的安全通道,而当出现错误后,程序执行的流程就会发生改变,程序的控制权也会转移到异常处理器。
exception(即异常)一般也就是指程序本身能够处理的异常。在exception类中有一个重要的子类RuntimeException。RuntimeException类以及其子类所表示的是“JVM常用操作”引发的错误。
此外,exception(异常)通常可分为两大类,即运行时异常与非运行时异常(编译异常)。若是在运行过程中出现了应当尽可能地去处理这些异常。
运行时异常
都是属于RuntimeException类及其子类异常,比如NullPointerException(即空指针异常)、IndexOutOfBoundsException(即下标越界异常)等,这些异常是属于不检查异常,程序中能够选择捕获处理,也能不处理。
需要注意的是,这些异常通常是由于程序逻辑错误而导致的,程序应该要从逻辑角度尽可能的避免这类异常的发生。而运行时异常的特点就是Java编译器不会去检查它,也就是说,当程序中可能会出现这类异常时,即使是没有用try-catch语句捕获它,也没有使用throws子句声明抛出它,通常也是会直接编译通过的。
非运行时异常 (即编译异常)
这是属于RuntimeException以外的异常,其在类型上都属于exception类以及其子类。若是从程序语法角度来看,这是必须要进行处理的异常,若是不及时处理的话,程序就不能够编译通过。比如IOException、SQLException等及用户自定义的exception异常,正常情况下就会不自定义检查异常。
当然,在Java中的异常是可以分为可查的异常(即checked exceptions)与不可查的异常(即unchecked exceptions)的。
可查异常也就是编译器要求必须处置的异常,一般来说正确的程序在运行中时,是很容易出现的、可理解的异常状况。
而不可查异常也就是编译器不要求强制处置的异常,通常包括运行时的异常与错误。
一般来说,若需要处理这些异常会有专门的异常处理的机制,即在Java应用程序当中,其异常处理的机制通常是抛出异常、捕捉异常。
抛出异常
也就是当一个方法出现错误引发异常时,方法创建异常对象并且交付运行时系统,异常对象中还包含了异常类型与异常出现时的程序状态等异常信息。在运行时系统会负责寻找处置异常的代码并且执行。
捕获异常
也就是在方法抛出异常之后,运行时系统将会转为寻找合适的异常处理器,而潜在的异常处理器是属于异常发生时依次存留于调用栈中的方法的集合。当异常处理器所能够处理的异常类型与方法抛出的异常类型相符时,代表是属于合适的异常处理器。
运行时系统从发生异常的方法开始,会依次回查调用栈中的方法,直到能够找到含有合适异常处理器的方法并且执行,若是运行时系统遍历调用栈而并未找到合适的异常处理器,那么在运行时系统就会终止。
希望能够帮助到大家。