2016/10/6
异常是一个程序执行期间发生的事件,它中断了正在执行的程序的正常指令流。
在Java中,异常被封装到了一个类中,当程序出现错误时,会创建一个异常对象并把它传递给正在运行的系统,从而触发异常处理机制。这样可以将程序主逻辑和异常处理代码分离开。
异常捕捉机制
Java异常捕捉结构:try,catch,finally
try{
//可能发生异常的主逻辑代码
}
catch(Exceptiontype1 e){
//发生Exceptiontype1的处理
}
catch(Exceptiontype2 e){
//发生Exceptiontype2的处理
}
finally{
//无论try块代码如何退出都会执行的程序块
}
catch块常用方法:
e.getMessage();
e.toString();
e.printStackTrace();
常见异常:
ClassCastException:类型转换异常
ClassNotFoundException:未找到相应类异常
ArithmeticException:算术异常
ArrayIndexOutOfBoundsException:数组下标越界异常
ArrayStoreException:数组中包含不兼容的值抛出的异常
SQLException:操作数据库异常
NullPointerException:空指针异常
NoSuchFieldException: 字段未找到异常
NoSuchModelException: 方法未找到异常
NumberFormatException:字符串转化为数字抛出的异常
NegativeArraySizeException: 数组元素为负数异常
StringIndexOutOfBoundsException:字符串索引超出范围抛出异常
IOException: 输入输出异常
IllegalAccessException:不允许访问某类异常
InstantiationException:newInstance()方法是实例化失败异常
EOFException:文件已结束异常
FileNotFoundException:文件未找到异常
自定义异常
public class MyException extends Exception{
public MyException(String ErrorMessage){
super(ErrorMessage);
}
}
抛出异常
throws——throw
throws关键字通常用于声明方法时,用来指定可能抛出的异常,多个异常可用逗号分隔。throw关键字通常用于方法体中,抛出一个异常对象。
例子:
public class Shoot{
static void divide(int x,int y) throws ArithmeticException{
if(y==0) throw new ArithmeticException;
return x/y;
}
public static void main(String[] args){
try{
divide(3,0);
}catch(ArithmeticException e){
System.out.println("除数不能为0");
}
}
}
2017/2/3批注:
非常基础的知识,get