讓方法throwUncheckedException()返回某些內容可以避免調用方法中需要返回值的額外行。
曾有如下異常直接從手柄的方法拋出:
public RT handle(Object[] params, Throwable e) {
throw new RuntimeException(e);
}
不會一直需要return語句(它甚至會一直實際上是非法的),因爲編譯器將能夠知道,拋出後的任何語句都將無法訪問。
但是由於throw是在另一個方法中完成的,並且由於handle方法需要返回值,所以必須添加return statememt。
讓throwUncheckedException()返回某個東西可以使該調用處於return語句中。
的throwUncheckedException()必須是一個接近:
public static <T> T throwUncheckedException(Throwable e) {
throw new RuntimeException(e);
return null;
}
恕我直言,這樣的事實,這就提出你的問題表明,實在是太令人費解的是值得的。也許更好的方式來實現相同的目標將是這樣的:
public RT handle(Object[] params, Throwable e) {
throw Exceptions.makeUncheckedException(e);
}
所以,你想返回一個值**和**拋出一個未經檢查的異常? – Jeremy 2010-03-19 17:53:38
是的。在執行過程中,總是拋出一個異常,而返回值則是編譯器的噓聲。 – Yardena 2010-03-31 14:50:14