2016-09-28 97 views
-1

我有一個場景,我需要根據他的主要身份/替代身份找到訂戶。拋出指定異常或處理通用異常包含錯誤代碼

現在可能存在操作失敗的情況。像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); 
        } 
    } 
    

你可以比較IOException異常FileNotFoundException異常

  1. 僅創建一個例外,並且對於每個場景,我提供一個錯誤代碼。

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

你可以用的SQLException進行比較。

我有最多10個錯誤的情況。

現在我想知道哪一個更好的方法。

回答

1

兩者都可以接受,但您可以嘗試將兩種方法結合使用。嘗試將錯誤分組爲一般類型的錯誤,然後您可以爲該組提供特定的錯誤代碼。如果類別足夠相似,例如所有類別都是SQL錯誤,那麼只要顯示適當的錯誤消息,就可以使用一個組。