[英]Casting of Exception necessity
快速提問的家伙,我已經看到很多關於 try/catch 塊的代碼,我已經看到很多次了,人們使用特定的異常來處理東西。 我的意思是,你有什么理由這樣做? 我通常只是在 catch 塊中放一個 Exception e 並從日志中讀出它......這是性能問題還是只是習慣?
擁有不同的異常類可以讓您擁有特定的異常代碼,而無需確定類型。
例如,而不是寫:
try {
...do some stuff
} catch( Exception e ) {
if( e instanceof NullpointerException ) {
... do something
} else if( e instanceof IOExceptio ) {
... do something else
}
}
你可以寫:
try {
... do something ...
} catch ( NullpointerException epe ) {
... handle NPE
} catch ( IOException ioe ) {
... handle IO Exception
}
等等。
此外,您還可以選擇僅捕獲某些異常,並允許該方法拋出其他異常:
public void doSomeIO() throws IOException {
try {
... do something ...
} catch( NullpointerException ) {
... handle NPE
}
}
然后你會稱之為:
try {
doSomeIO();
except ( IOException ) {
handle the IO exception
}
通過這種方式,您可以在它所屬的地方進行特定的異常處理,並允許其他人在可以更好地處理的地方冒泡。
捕獲ClassCastException
的錯誤與捕獲ArrayIndexOutOfBounds
異常的錯誤不同。 你應該相應地處理它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.