我有一個用例,我想返回一些數據(一個對象),因爲我拋出一個異常。我正在考慮將數據存儲在自定義檢查的異常類中,並在異常處於堆棧中較高位置時通過getter訪問它。這被認爲是一個壞主意?如果是的話,有什麼更好的選擇?我見過發送相關消息給定製的異常,但並沒有真正看到它被用作數據存儲。將數據存儲在自定義檢查異常中是不是一個好主意?
我確實偶然發現了Return a value AND throw an exception?,其中一個答案有類似之處。我正在考慮重載構造函數和提供對象,而不是將它作爲另一個參數傳遞。這被認爲是不好的編碼習慣?
public class NameException extends Exception
{
private static final long serialVersionUID = -4983060448714460116L;
private Service externalService;
public NameException(final String message)
{
super(message);
}
public NameException()
{
}
public NameException(Service externalService)
{
this.externalService =externalService;
}
public Service getExternalService()
{
return externalService;
}
}
我認爲這不是一個壞主意,它是根據你的需要。 – assembler