只是一個簡單的問題,我似乎無法找到適合在線的答案。Java - 簡單的異常處理查詢
當我有一個try/catch塊,並且想要發現錯誤時,應該使用System.err.println(...)
還是應該使用throw new Exception(...)
。
例如:
if (null==userList || null==credentials)
System.err.println("Did you call login() first?");
else
{
try
{
currentUser=(String) userList.nextElement();
currentPass=(String) credentials.get(currentUser);
}
catch(NoSuchElementException nsee)
{
System.err.println("Is properties file blank?");
//Or should this be
throw new NoSuchElementException("Is properties file blank?");
nsee.printStackTrace();
}
}
編輯:那麼,throw
並不意味着去裏面catch
?我可以使用throw
而不是catch
,還是僅用於方法簽名? 在這種情況下捕獲錯誤的正確方法是什麼,我將試圖確保屬性文件不是空白幷包含值? 此外,爲了清楚起見,我的目標是儘可能地向用戶清楚錯誤是什麼,所以他們立即知道他們需要修復它們的屬性文件。
我認爲他們是不同的問題 - System.err主要是用於調試 – Coffee 2012-03-26 20:20:12
一個奇怪的問題。重新投擲的決定似乎與您是否想要登錄它或在何處登錄無關。 – onnoweb 2012-03-26 20:20:26