Java异常处理机制

本文介绍了Java中的异常概念,包括错误与异常的区别,列举了常见的异常类型如ArithmeticException、NullPointerException等,并详细阐述了异常处理的三种方式:try-catch、throws和throw。强调了finally块的执行特性及其在异常处理中的作用,指出合理利用异常处理能增强程序的健壮性和容错能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、概念

  • 异常是程序中的一些错误,但并不是所有的错误都是异常,且错误往往是可以避免的。若代码少分号,则运行结果提示java.lang.Error错误;若System.out.println(100/0),则产生java.lang.ArithmeticException异常。

2、分类

在这里插入图片描述

  • 输入输出异常:IOException算术异常类;
  • ArithmeticExecption空指针异常类:NullPointerException;
  • 类型强制转换异常:ClassCastException;
  • 操作数据库异常:SQLException;
  • 文件未找到异常:FileNotFoundException;
  • 数组负下标异常:NegativeArrayException;
  • 数组下标越界异常:ArrayIndexOutOfBoundsException;
  • 违背安全原则异常:SecturityException;
  • 文件已结束异常:EOFException;
  • 字符串转换为数字异常:NumberFormatException;
  • 方法未找到异常:NoSuchMethodException。

3、异常处理方式

在这里插入图片描述

  • 通过try、catch捕获异常
try{
// 程序代码

}catch(ExceptionName e1){
//Catch 块

}
  • 通过throws抛出异常

定义方法时,可使用throws关键字对其进行声明。在此,需要强调:使用throws关键字声明的方法表示此方法不处理异常而交给方法调用处进行处理。

  • throw关键字抛出异常

throw关键字作用是抛出一个异常,抛出的时候是抛出的是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。

  • 知识点拓展

      try{return;}catch(){}finally{}return;
    

    执行顺序:

    a. 代码段首先进入try语句;
    b. 因无异常抛出,代码将要return的内容保存在内存中;
    c. 执行finally;
    d. 因finally中无可执行内容,再转回try中执行return;
    e. 整个代码段执行结束;
    注: finally后面的return是不会执行的。

4、总结

  • 不管有没有出现异常,finally块中代码都会执行;
  • 当try和catch中有return时,finally仍然会执行;
  • finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的;
  • finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值;
  • 异常的捕获、抛出和异常处理是维持代码健壮性的重要条件;
  • 灵活使用异常及处理,不仅能最大限度的避免出错,也能增加软件的容错机制。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值