在感興趣的程序中,在執行方法()期間,可能會發生一些與HTTP相關的異常。由於某些原因,該方法被設置爲能夠引發ExpException。我的興趣只在特定類型的例外,即UnknownHostException異常,可以通過使用捕獲是異常原因的UnknownHostException
if (e.getCause().getCause().getCause() instanceof UnknownHostException)
,我希望你同意訪問是非常討厭的方式。因此,這工作正常:
public class ExportException extends Exception;
class sth{
method() throws ExpException;
}
class main{
try{
method()
} catch(ExpExceptione e){
if (e.getCause().getCause().getCause() instanceof UnknownHostException){
doSthElse();
}
}
但是,我希望如下所述做。不幸的是,Eclipse大叫
UnknownHostException的無法到達的catch塊。這個例外是從未從try語句拋出的 。
對我有幫助嗎?我不想使用getCause()^ 3。
另外:這是一個很大的項目,我是新來的新手,寧可不要亂搞外面的課,而只是「主」。
我的計劃是這樣的:
public class ExportException extends Exception;
class sth{
method() throws ExpException;
}
class main{
try{
method()
} catch(UnknownHostException e){
doSth();
} catch(ExpExceptione){
doSthElse();
}
這個異常沒有被拋出。這從錯誤消息中看起來很明顯。 –
那麼,如果異常是你捕獲異常的*原因*,那麼它就不會被拋到你試圖捕獲它的地方。要麼改變捕獲它的代碼的一部分,並使其成爲另一個異常的原因,要麼像你一直在做的那樣需要得到原因。 – RealSkeptic