Java程式設計中異常處理特殊情況,下面我們就詳細的看看如何才能更好的學習相關知識。
1、不能在finally塊中執行return,continue等語句,否則會把異常“吃掉”;
2、在try,catch中如果有return語句,則在執行return之前先執行finally塊
請大家看下面的.例子:
public class TryTest {
public static void main(String[] args) {
try {
tln(());// 返回結果為true其沒有任何異常
} catch (Exception e) {
tln(“Exception from main”);
tStackTrace();
}
doThings(0);
}
public static boolean test() throws Exception {
try {
throw new Exception(“Something error”);// 第1步。丟擲異常
} catch (Exception e) {// 第2步。捕獲的異常匹配(宣告類或其父類),進入控制塊
tln(“Exception from e”);// 第3步。列印
return false;// 第5步。 return前控制轉移到finally塊,執行完後再返回(這一步被吃掉了,不執行)
} finally {
return true; // 第4步。 控制轉移,直接返回,吃掉了異常
}
}
public static void doThings(int i)
{
try
{
if(i==0)
{
//在執行return之前會先執行finally
return;
}
int t=100/i;
tln(t);
}catch(Exception ex)
{
tStackTrace();
}
finally
{
tln(“finally”);
}
}
}