异常处理,英文名为exceptional handling,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。异常处理分离了接收和处理错误代码,异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。
Error:错误,由java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等(程序对其不做处理)
Exception:异常类的父类,包括编译时错误和运行时错误,其子类对应各种各样可能出现的异常事件,一般需用户显式的声明和捕获(用户需处理)
RuntimeException:一般特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。由系统自动检测并将他们教给缺省的异常处理程序(用户不必处理)
Exception:
1.可以是可控制的也可以是不可控制的
2.由程序媛导致的错误
3.应该在应用程序集被处理掉
异常处理的捕获和异常主要包括五个关键字:try,catch,finally,throw,throws。
当异常发生时,程序会中止当前的流程,根据获取异常的类型去执行相应的catch代码段,finally段的代码无论是否发生异常都有执行,执行后用于释放资源。
import java.io.*; public class TestEx{ public static void main(String[] args){ int[] arr={1,2,3}; System.out.println(arr[2]); try{ System.out.println(2/0); } catch(ArithmeticException ae){ System.out.println("系统正在维护,请与管理员联系!"); ae.printStackTrace(); } finally { System.out.println("catch成功!"); } } }
2.throws出现在方法函数中
3.写了throws后,不一定抛出异常,并不一定会出现异常。
总结:
异常处理将错误代码独立出来,使得程序更加的严谨,程序写的更加整齐。同时可以顺着调用栈传递错误,这样就可以很快的查到错误的原因,方便以后的维护。