《Java异常处理》学习笔记

本文探讨了Java异常处理对性能的影响,以及如何运用try...catch、finally、throws和throw语句进行异常处理。异常处理机制确保了关键代码的执行,即使在出现异常时也能执行finally块中的代码。同时,文章提醒在finally块中谨慎使用return语句,以避免潜在的错误。
摘要由CSDN通过智能技术生成

1.异常处理对性能的影响
一般来说,在Java程序中使用try…catch语句不会对应用的性能造成很大的影响。仅仅当异常发生时,Java虚拟机需要执行额外的操作,来定位处理异常的代码块,这是会对性能产生负面影响。如果抛出异常的代码块和捕获异常的代码块位于同一个方法中,这种影响就会小一些;如果Java虚拟机必须搜索方法调用栈来寻找异常处理代码块,对性能的影响就比较大了。尤其当异常处理代码块位于调用栈的底部时,Java虚拟机定位异常处理代码块就需要大量的工作。

2.运用Java异常处理机制

  • 在Java语言中,用try…catch语句来捕获异常。
  • finally语句:任何情况下都必须执行的代码
  • throws子句:声明可能会出现的异常。如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明跑出异常。
  • throw语句:抛出异常
    例如:汽车在运行时可能会出现故障,汽车本身没办法处理这个故障,因此Car类的run方法声明抛出异常 CarWrongExcepiton:
    public void run() throws CarWrongException {
        if(车子无法刹车) 
            throw new CarWrongException("车子无法刹车");
        if(发动机无法启动)
            throw new CarWrongException("发动机无法启动");
    }

异常处理语句的语法规则

  • try代码块不能脱离catch代码块或finally代码块而单独存在。try代码块后面至少有一个catch代码块或finally代码块
  • try代码块后面可以有零个或多个catch代码块,还可以有零个或至多一个finally代码块。如果catch代码块和finally代码块并存,finally代码块必须在catch代码块后面
  • try代码块后面可以只跟finally代码块
    try {
            int a = 1;
            Thread.sleep(1000);
        } catch (Exception e) {
            // TODO: handle exception
            a--;     //编译错误
        } finally {
            a ++;   //编译错误
        }
  • 如果一个方法可能出现受检查异常,要么用try…catch语句捕获,要么用throws子句声明将它抛出,否则会导致编译错误
  • throw语句后面不允许紧跟其它语句,因为这些语句永远不会被执行。例:
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值