简明java_简明 Java 错误处理机制

用个最简单的例子来展示为什么需要错误处理,以及怎么用。

importjava.io.FileInputStream;importjava.io.FileNotFoundException;public classThrowsTest {public static void main(String[] args) throwsFileNotFoundException {try{

throwsTest();

}catch(FileNotFoundException e) {

System.out.println("File is not found!");throwe;

}catch(NullPointerException e) {

System.out.println(e);

}

System.out.println("hi");

}public static void throwsTest() throwsFileNotFoundException,NullPointerException {new FileInputStream("shiyanlou.file");throw new NullPointerException("have a try!");

}

}

上面的代码中, throwsTest 抛出了两个 exception:一个错误是由它调用的方法 FileInputStream 抛给它的,另一个是它自己抛出的。

在 main 函数中,通过 try-catch 来捕捉这两个 exception 并处理。

基本原则是:

1. 抛出的 exception 肯定会被 catch。

2. catch 到的 exception 可以当场处理掉,则 exception 被终止。

3. catch 到的 exception 也可以再 throw 给上一级调用者处理。

4. 如果一级级往上抛,最终由 JVM 来 catch 的话,就是直接终止程序并打印 stack frame 错误。

我们使用 exception 的核心目的,就是为了避免第 3 中情况发生。

可以想象,如果因为某个文件没有找到,我们的软件就直接崩溃了,这是件很难接受的事情;从使用角度来讲,大不了重新指定路径。

所以,我们要努力做好前 3 件事。

前辈总结的 exception 使用心得:

b3041f39f05a0feab9b3d361268ba5fc.png

exception 的继承关系:

94ae19ac490ee1355e253e78c08a17be.png

发挥问题:是不是可以自己定义 Throwable ?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值