Self-study in Java 异常机制Exception

文章介绍了Java中的异常处理机制,包括Error类和Exception的区别,强调了遇到错误时应视为学习机会。重点讲述了try、catch、finally关键字的使用,以及如何捕获和处理异常,如ArithmeticException。还提到了主动抛出异常(throw)和方法上声明异常(throws)。最后分享了实际编程中处理异常的经验,如使用finally释放资源和合理规避异常。
摘要由CSDN通过智能技术生成

异常机制Exception

Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。

我们在编写程序时,不要害怕看到报错报红,当我们看到报红的时候,往往是我们进行学习的时候,去解决掉这个异常,把它记录下来,我们才算真正的学会这个知识。

学习怎样捕获异常

异常处理五个关键字:try、catch、finally、throw、throws

快捷键:选中当前代码 Country Alt+T (macOS系统快捷键是command+option+T)在弹出框中选try.catch.finally

public class test {
    public static void main(String[] args) {
        
        int a = 1;
        int b = 0;

        try {//这里面的是监控区域
            System.out.println(a/b);
        } catch (Exception e) {//catch捕获异常,(括号里面是捕获的类型)
            System.out.println("程序出现异常");
        } finally {//处理善后工作,这里面的代码终究会执行
        }
    }
}

catch自动生成时会自动生成一句代码:printStackTrace()->意思是打印栈错误信息

可以捕获多个异常:多个catch(),但是要注意优先级从小到大去捕获。详细异常体系结构看下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ge3TRRA3-1682925977522)(/Users/xiexinming/Library/Application Support/typora-user-images/截屏2023-05-01 14.55.15.png)]

主动抛出异常:假设这个方法中(throw),处理不了这个异常,那就在方法上(throws)抛出异常

public static void main(String[] args){
  try{
    new Test().test(1,0);
  }catch(ArithmeticException e){
    e.printStackTrace();
  }
}


public void test(int a,int b)throws ArithmeticException{
  if(b==0){
    throw new ArithmeticException();//主动抛出的异常,一般在方法中使用,
  }
}

实际应用中的经验总结

  • 处理运行异常时,采用逻辑去合理规避同时辅助try-catch处理
  • 在多重catch块后面 ,可以加一个catch(Exception)大的 来处理 可能会被遗漏的异常
  • 对于不确定的代码,也可以加上try- catch,处理潜在的异常
  • 尽量添加finally语句块去释放占用的资源

以上学习资源均来自kuangshen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值