Java 中 Exception 和 Error 有什么区别?

1. Exception

  • Exception 代表程序正常运行过程中可以预料到的意外情况,应该被开发者捕获并进行相应处理。

2. Error

  • Error 指在正常情况下不太可能出现的情况。
  • 大部分 Error 导致程序处于不正常、不可恢复的状态,所以不便也不需被开发者捕获,因为这个情况下你捕获了也无济于事。

3. Throwable

  • Exception 和 Error 都是继承自 Throwable 类。
  • 在Java代码中,只有继承自 Throwable 的实例可以被 throwcatch

4. 注意事项

4.1 捕获特定的异常
  • 避免捕获通用的 Exception异常,而应该捕获特定的异常。

软件工程是一门协作的艺术,在日常的开发中我们有义务使自己的代码能更直观、清晰的表达出我们想要表达的信息。
但是如果你什么异常都用了Exception,那别的开发同事就不能一眼得知这段代码实际想要捕获的异常,并且这样的代码也会捕获到可能你希望它抛出而不希望捕获的异常。

4.2 不要“吞”了异常
  • 捕获异常后,应将异常信息输出到日志,不要仅仅使用 e.printStackTrace()

如果我们捕获了异常,不把异常抛出,或者没有写到日志里,那会出现什么情况?线上除了bug莫名其妙的没有任何的信息,你都不知道哪里出错以及出错的原因。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值