Java的异常处理是通过5个关键字来实现的:
try、catch、finally、throw、throws
*异常分为Checked异常和运行时异常
Checked异常必须捕获或者声明抛出
*try-catch-finally中存在return语句的执行顺序
*finally块中语句不执行的情况(System.exit(1))
常见的异常类型
Exception 异常层次结构的根类
ArithmeticException 算术错误情形,如以零作除数
ArrayIndexOutOfBoundsException数组下标越界
NullPointerException 尝试访问null对象成员
ClassNotFoundException 不能加载所需的类
InputMismatchException 欲得到的数据类型与实际输入的类型不匹配
IllegalArgumentException 方法接受到非法参数
ClassCastException 对象强制类型转换出错
NumberFormatException 数字格式转换异常,如把“ABC”转换成数字
一、异常机制
格式1:
try{
可能发生异常的语句}catch(Exception){
捕获异常
}finally{
无论是否有异常,都进入执行}
获得异常的信息:
e.getMessage();
获得异常的内存堆栈信息及错误位置:
e.printStackTrace();
throw和throws的区别:
throws:在方法里去抛出异常,可以抛出多个异常去给虚拟机或调用者去处理
throw :每次只能抛出1个异常,使用try-catch去处理,或者抛给别人
具体区别表现在以下几个方面:
1.作用不同:throw用于在程序中抛出异常;throws用于声明在该方法内抛出了异常
2.使用位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用
3.内容不同:throw抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以跟多个异常类。