Java异常处理【笔记】

异常

程序出现了问题

如何学习异常?

1、异常体系

(1)异常类

​ 在Java中,定义了很多类,用来描述错误(异常)信息

​ NullPointerExcption:异常类,空指针异常

​ IndexOutofBounds:异常类,数组越界

​ …

​ 在Java中,如果程序出现了异常,Java会定义很多异常类,用来描述异常相关信息

​ 所有异常类合在一起,就叫做异常体系

(2)

—|Throwable:所有异常类的父类

------|Error:错误,一般不能通过代码解决的问题(CPU烧坏了,硬盘损坏了)

------|Exception:异常(平时说的异常)

---------|空指针异常

---------|数组越界异常

---------|…

(3)Exception

​ 分成两大类

​ 非运行时异常(编译时异常):在编译阶段就会出现的问题

​ 运行时异常:运行时出现的问题

编译时异常:

​ ClassNotFoundException

运行时异常:

​ 在运行时抛出异常

2、常见的异常类

ArrayIndexOutOfBoundsException:数组越界

​ 使用的索引值超过了数组最大索引值

NullPointerException:空指针异常

​ 变量指向了null(变成了空的),又使用空的变量去访问数据

ArithmeticExcepton:算术异常

​ 进行运算的时候

3、Throwable

常用方法:

​ String getMessage():获取异常信息

​ void printStackTrace():打印异常信息(默认打印到控制台)

​ void printStackTrace(PrinStream s):把异常信息打印到指定位置

4、异常的处理(重点)

​ 如果不处理异常,程序就直接结束了,体验差

解决:

​ 对可能出现问题的代码,进行异常处理

效果:

​ 处理的代码出现问题,不会影响后面的代码执行

(1)捕获异常
try{
    //可能出现问题的代码
}catch(异常类型 变量名){
    //捕获异常,做相应的处理
}catch(异常类型 变量名){
    
}...

catch(参数):

​ 参数:捕获什么异常

注意:如果捕捉多个异常,顺序一定是从小到大(从子类到父类)

需求:

​ 代码一定要执行(资源释放)

try{
    //可能出现问题的代码
}catch(异常类型 变量名){
    //捕获异常,做相应的处理
}finally{
    //对于不管是否有异常都需要运行的代码,写在finally中
}
(2)抛出(声明)

关键字:

​ throws

作用:

​ 在方法上声明异常类型(我如果有问题,调用者就会收到问题)

效果:

​ 如果方法中出现了异常,可以不管,直接抛给调用者处理

格式:

public void test() throws Exception{
    
}
(3)throw抛出

​ 手动抛出异常对象

格式

throw new 异常对象;

例如:

int a = 1/1;
throw new Exception();

使用:

​ 手动抛出自定义异常

5、自定义异常类

自定义异常类:

​ 无法自动抛出

格式:

//创建类,继承Throwable
public class MyException extends Throwable{
    public MyException(String msg){//msg:异常描述信息
        super(msg);
    }
}

如果自定义了一个异常类,不去手动的抛出,永远无法使用

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值