异常
1.常见异常
① NullPointerException——空指针异常:当使用的对象(调用对象的方法或 字段)没有引用或值为null
② ArrayIndexOutOfBoundsException——数组下标越界异常
③ NumberFormatExce——数字格式化异常:将不符合转换格式的字符串转 换为数字式
④ ParseException——解析异常:需要转换为Date的字符串不符合格式
⑤ ClassCastException ——类型转换异常:如果两个类不存在继承关系,且要 相互转换时抛出此异常
⑥ ArithmeticException——运算异常
处理异常方式
try_catch 语句
格式:
try{
可能出异常的代码
}catch(异常类型 异常对象){
处理方式
}
eg:
try{
System.out.println(1/0);
}catch(ArithmeticException e) {
System.out.println(“除数不能为0…”);
}
多异常的处理
① 格式:
try{
可能出现异常的代码
}cathc(异常类型 异常对象){
处理方式
}catch(异常类型2 异常对象2){
处理方式
}…
finally结果
① 格式:
try{
可能出现异常的代码
}cathc(异常类型 异常对象){
处理方式
}finally{
无论是否发生异常都要执行的代码
}
② 注意:
- 无论是否会发生异常,都会执行finally结构中的代码
- finally中一般放关闭流或释放系统资源的代码
- 尽量不放业务逻辑代码,也不要返回数据
异常的抛出
① 语法:
修饰符 返回值类型 方法名() throws 异常类型1,异常类型2…{
方法体
}
② 注意事项:
- 运行时异常会自动抛出,非运行时异常必须手动抛出,且必须在throws后明确声明异常类型
- 可抛出多种异常,异常类型之间用逗号“,”分割
- 谁调用,这处理
获取异常信息
① String getMessage();——返回此异常产生的原因
② String toSring();——返回此异常名称和的产生的原因
③ void printStackTrace();——开控制台打印此异常的名称、产生原因、异常位置
Throwable体系
① Err类:错误
② Exception类
- RuntimeException:自动抛出,在编译器不强制要求处理
- 非RuntimeException:在编译器强制要求处理,需要手动抛出,且必须明确声明抛出的异常类型