引发指定异常或处理通用异常包含错误代码

时间:2016-09-28 13:40:48

标签: java exception exception-handling

我有一个场景,我需要根据他的主要身份/替代身份找到订阅者。

现在可能存在操作失败的情况。如DBDown,未找到订阅者,未找到替代身份的主要身份等。

现在要处理这种情况,我有两种选择。

  1. 为每个或一组故障方案创建特定例外。

    public class SubscriberFetchingFailedException extends Exception {
    
       public SubscriberFetchingFailedException(String message) {
         super(message);
       }
     }
    
    /**
     * throw when Primary identity not found against alternate identity
     */
    
     public class PrimaryIdentityNotFound extends SubscriberFetchingFailedException {
         public PrimaryIdentityNotFound(String message) {
            super(message);
         }
     }
    
  2. 您可以与 IOException FileNotFoundException 进行比较。

    1. 仅创建一个例外,并为每个方案提供错误代码。

      public class SubscriberFetchingFailedException extends Exception {
          public SubscriberFetchingFailedException(String message, int errorCode) {
              super(message);
          }
      }
      

    2. 您可以将其与 SQLException 进行比较。

      我有最多10个错误情况。

      现在我想知道哪一种方法更好。

1 个答案:

答案 0 :(得分:1)

两者都可以接受,但您可以尝试将两种方法结合起来。尝试将错误分组为一般类型的错误,然后您可以为该组提供特定的错误代码。如果类别足够相似,例如所有类别都是SQL错误,那么只要显示相应的错误消息,就可以使用一个组。