1
如果我拋出一個非法的參數異常,我也想通過像"Value can not be negative"
之類的原因。我不喜歡有這樣的代碼的想法:在文件或類中存儲自定義異常消息
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
throw new IllegalArgumentException("Age can not be negative");
}
}
我想的有點像
public static final String AGE_CAN_NOT_BE_NEGATIVE = "Age can not be negative";
在另一類
,所有的自定義異常信息存儲在一個文件中。這樣我也可以在單元測試中使用消息來查看是否引發了正確的異常,當我使用該函數時。我也可以重複使用這些消息。自定義異常也是如此,我寧願將郵件存儲在另一個文件中。
事情是:如果有很多自定義消息用於例外,那麼類可以變得非常大。
你有很多自定義消息的方法是什麼?
我也在想這個,但我儘量避免自定義異常,因爲它會加載類的數量。 'IllegalArgumentException'是每個開發人員都熟悉的東西,並且隨着堆棧跟蹤打印出類,它被拋出的位置,您應該發現您的編碼/使用錯誤足夠快。例如,我將使用GUI的消息。而且,我寧願在另一個文件中定義消息,然後用這些字符串創建一個自定義異常。 – Simons0n
像往常一樣,這是需要首先考慮的事情。我並不是在任何地方提倡這種模式,但是我們的代碼中有一些地方我認爲它是合理的。此外,它有助於測試,因爲您可以檢查代碼的某些部分拋出特定的異常。 – Alf