异常处理
1. 异常:程序在执行过程中所产生的问题
2. 异常分类:
A. 检查异常(checked异常,受检异常):通常是用户错误或者不能被程序员所预见的问题
B. 运行时异常(unchecked异常):是一个程序在运行过程中可能发生的,可以被程序员避免的异常
C. 错误
3. 异常的控制流程
A.在Java语言中,异常(Exception)是被一个方法抛出的对象。当一个方法抛出异常时,该方法从调用栈中被弹出,同时产生的异常对象抛给了栈中的前一个方法。
B.对于异常的处理,方法有三种选择:
a.捕获这个异常,不让它沿着调用栈继续向下抛出;
b.捕获这个异常,并继续向下抛出;
c.不捕获这个异常,从而导致方法从调用栈中被弹出,异常对象继续抛给调用栈下面的方法
4. Throwable类
在Throwable类中有两个方法,可以用于获取抛出异常的信息:
A. getMessage
B.printStackTrace
5. 捕获异常
关键字:try,catch
语法:try{
//被保护的代码
}catch(异常的名称 e){
//捕获块
}catch(){
}finally{
//finally块总会执行
}
注意: A. 如果在try程序块中没有抛出异常,那么catch块将被忽略。程序将继续执行try-catch下面的语句
B. 在一个try-catch语句中,当有多个catch块的时候,它们被顺序检查
C. 如果有一块代码不管是否发生异常抛出都要被执行,我们使用关键字finally
D. 当在try程序块中,遇到return语句,finally块中的语句在方法返回之前被执行
6. 异常的抛出
A. 声明异常:使用关键字throws,throws放在方法签名的末尾(访问修饰符 可选修饰符 返回类型 方法名(参数列表)throws 异常类型)
B. 抛出异常:使用关键字throw(throw new异常类型)
8. 用户自定义异常
自定义异常步骤:
第一步:创建一个类继承于Exception
第二步:添加构造方法和普通方法
第三步:在一个方法中抛出异常
第四步:在另一个方法中捕获并处理异常