ユーティリティにユーザーIDを与え、そのユーザーにメールを送信するコードがあります。
emailUtil.sendEmail(userId, "foo");
public void sendEmail(String userId, String message) throws MailException {
/* ... logic that could throw a MailException */
}
MailException
メールアドレスの問題、メールテンプレートの問題など、さまざまな理由でスローされる可能性があります。
私の質問はこれです:これらの例外のすべてに対して新しい例外タイプを作成してから個別に処理しますか、それとも1つのMailExceptionを作成してから例外に何か(説明テキストではなくコンピューターで読み取り可能なもの)を格納しますか?実際に起こったことに基づいて、さまざまなことを行います。
編集:明確にするために、例外はログなどではなく、コードがログにどのように反応するかに関係しています。メールの例を続けるために、メールを送信するときに、メールアドレスがないために失敗したり、有効なメールアドレスがないために失敗したり、失敗したりする可能性があるとします。
私のコードは、これらの問題のそれぞれに対して異なる反応を示したいと思います(主に、クライアントに返されるメッセージを変更しますが、実際のロジックも変更します)。
これらの問題のそれぞれに例外を実装するか、コードに問題の種類を区別させる内部的なもの(列挙型)を持つ1つの包括的な例外を用意するのが最善でしょうか。