Java throws exception例外處理
原先一直以為只要function有throws Exception, 引用該function的程式都一律要用try...catch...處理該Exception, 實作後再加上看了良葛格http://openhome.cc/Gossip/JavaGossip-V1/ExceptionHierarchy.htm的文章, 才發現原來不是這麼一回事!
節錄部分該篇文章內容如下:
屬於RuntimeException衍生出來的類別,是在執行時期會發生的,不需要特別使用try-catch或是在函式上使用"throws"宣告也 可以通過編譯,例如您在使用陣列時,並不一定要處理ArrayIndexOutOfBoundsException例外。(如圖一)
Exception下非RuntimeException衍生之例外如果有引發的可能性,則您一定要在程式中明確的指定處理才可以通過編譯,例如當您使用 到BufferedReader類別時,由於有可能引發IOException,您要不就在try-catch中處理,要不就在函式上使用throws表 示由呼叫它的函式來處理。(如圖二)
[圖一] ArithmeticException 為RuntimeException
|
[圖二] IOException 為非RuntimeException, 出現編譯錯誤
|
~ 動手作, 得真知 ~