java定义运行时异常,在Java中,我应该何时创建一个已检查的异常,何时应该是运行时异常?...

关于这个话题有很多不同意见。在我的最后一个工作,我们遇到了一些真正的问题,运行时异常被遗忘,直到他们出现在生产(在agedwards.com),所以我们决心使用检查异常。

在我目前的工作,我发现有很多人在许多或所有情况下的运行时异常。

这里是我想:使用CheckedExceptions,我被迫在编译时至少确认调用者中的异常。对于运行时异常,我不是强迫编译器,但可以编写一个单元测试,让我处理它。因为我仍然相信,早期一个bug被抓住更便宜它是修复它,我更喜欢CheckedExceptions为这个原因。

从哲学的角度来看,方法调用在某种程度上是调用者和被调用者之间的契约。由于编译器强制执行传入的参数类型,它似乎是对称的,让它强制类型的出口。也就是说,返回值或异常。

我的经验告诉我,当我使用检查异常时,我获得更高的质量,即,JUST WORKS的代码。检查的异常可能杂乱的代码,但有技术来处理这个。我喜欢在传递图层边界时翻译异常。例如,如果我从我的持久层传递,我想将一个SQL异常转换为持久化异常,因为下一层不应该关心我坚持到一个SQL数据库,但会想要知道是否有东西不能持久化。我使用的另一种技术是创建一个简单的异常层次结构。这让我把编写更清晰的代码一层,因为我可以捕获超类,只有处理各个子类,当它真的很重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值