我有一些代码将用户 ID 提供给实用程序,然后将电子邮件发送给该用户。
emailUtil.sendEmail(userId, "foo");
public void sendEmail(String userId, String message) throws MailException {
/* ... logic that could throw a MailException */
}
MailException
可能由于多种原因而引发,电子邮件地址问题,邮件模板问题等。
我的问题是:你是为这些异常中的每一个创建一个新的异常类型,然后单独处理它们,还是你创建一个 MailException 然后在允许的异常中存储一些东西(计算机可读的东西,而不是描述文本)我们根据实际发生的情况做不同的事情。
编辑:作为澄清,异常不适用于日志等等,这与代码对它们的反应方式有关。继续以邮件为例,假设当我们发送邮件时,它可能会因为您没有电子邮件地址而失败,或者因为您没有有效的电子邮件地址,或者它可能会失败......等等。
我的代码希望对这些问题中的每一个做出不同的反应(主要是通过更改返回给客户端的消息,但也更改实际逻辑)。
最好是为这些问题中的每一个问题或一个具有内部内容的总括异常(例如枚举)提供一个异常实现,让代码区分它是什么类型的问题。