一. 概述
Java异常是一个描述在代码段中发生异常的对象,当发生异常情况时,一个代表该异常的对象被创建并且在导致该异常的方法中被抛出,而该方法可以选择自己处理异常或者传递该异常。

Error:由JVM生成并抛出,大多数错误与代码程序的操作无关
Exception:包含运行时异常(非受检异常)和非运行时异常(受检异常)
二. 处理异常
1. try-catch-finally
try{
//可能出现异常的代码
}catch(异常类型1 变量名1){
//处理异常的方式1
}catch(异常类型2 变量名2){
//处理异常的方式2
}catch(异常类型3 变量名3){
//处理异常的方式3
}
....
finally{
//一定会执行的代码
}
- try将可能出现异常代码包起来,执行过程中,一旦出现异常,就会生成一个对应异常类的对象,根据此对象的异常类型,去匹配该执行的catch,处理完成就跳出当前的try-catch结构
- catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面
- finally是可选的,finally中的语句一定会执行,try-catch-finally结构可以嵌套
2. throw 和 throws
throw:在方法体内手动new一个系统自带或自定义异常类的对象
throws:在方法声明处抛出可能会发生的异常,由方法调用者处理该异常
class Student{
private int id;
public void register(int id) throws Exception{
if(id < 0){
throw new RuntimeException("非法输入!");
throw new MyException("不能输入负数!"); // 自定义异常类型
}else{
this.id = id;
}
}
}
public class MyException extends Exception{
static final long serialVersionUID = -7034897193246939L; //对类的唯一标识
MyException(){}
MyException(String msg){
super(msg);
}
}
本文深入解析Java异常处理机制,包括Error与Exception的区别,try-catch-finally语句的使用,以及throw与throws关键字的应用。通过实例说明如何自定义异常类。
1259

被折叠的 条评论
为什么被折叠?



