ath*_*ena 6 java exception-handling
我有一个使用两种API方法的应用程序.这两种方法都抛出超过五个例外.所以,如果我只是添加一个throws声明,那么它将成为一个超过十个的列表.(我的方法不能处理十个例外中的任何一个)
我读过,抛出一长串异常是一种不好的做法.抛出(伞)异常是一种不好的做法.所以我该怎么做?
编辑:添加选项5.
“2.创建自定义异常类”,但不适合所有人。将异常包装在逻辑组中。例如,您可以使用XmlWritingException
,PaymentGatewayException
和DataAccessException
来根据场景包装不同的异常。
甚至可以(并且首选)将相同的异常包装在不同的包装器中。例如,如果由于通信问题导致付款失败,您可以包装,但如果在IOException
使用xml 的某些 I/O 操作期间失败,您可以包装。所有这些例子都是假设的,但你明白了。PaymentGatewayException
XmlWritingException
最重要的是 - 将原始异常设置为新异常的原因,这样它就不会丢失。
更新:事实上,如果您不能期望客户端从异常中合理恢复,选项 5 就可以了。更好的是 - 您创建的自定义异常可以扩展RuntimeException
。这就是 spring 所做的,例如,将所有与数据相关的异常包装在DataAccessException
.
归档时间: |
|
查看次数: |
3500 次 |
最近记录: |