亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2SE綜合:JAVA異常處理方式的區別和分析

2019-11-17 04:59:26
字體:
來源:轉載
供稿:網友
一、內層方法拋出異常,外層方法捕捉并處理異常:

public void methodA (){
   try{
       // 調用methodB
       methodB();
   }
   catch(ExceptionType et){
      // 相應處理措施
   }
}

public void methodB throws ExceptionType{
    if (condition is true)
    {
  // 相應處理措施
    }
 else
 {
  throw new ExceptionType(argument);
 }
}

在這個例子中,方法B的頭部中聲明了該方法會拋出一個類型為ExceptionType的異常,在方法體中使用throw子句拋出了一個異常,那么該異常被誰捕捉到呢,答案是方法A。因為異常拋出后,JVM會順著該方法的調用棧一層一層的往上找。因為方法A中有一個catch(ExceptionType et),所以被拋出的異常會被捕捉到并處理。


二、方法中自己捕捉,處理異常:

public methodA() {
 try
 {
  // 可能產生異常的語句
 }
 catch (ExceptionType et)
 {
  // 相應的處理
 }
}
在這個例子中,方法A使用了try-catch語句塊,那么意味著在方法中所產生的ExceptionType類型的異常都會被捕捉到并在方法內處理。


三、內層方法拋出一個異常,但本身又有try-catch

public methodB() throws ExceptionType{
 
 try
 {
  // 可能產生異常的語句
 }
 catch (AnotherExceptionType aet)
 {
  // 相應處理措施
 }
}
在這個例子中有兩種異常處理情況,拋出異常和捕捉異常,如果在try語句塊中產生ExceptionType類型的異常的話,會被拋出。如果產生AnotherExceptionType類型的話,則不會被拋出,因為在方法B的頭部中并沒有聲明會拋出該異常。


四、內層方法拋出一個異常,但本身有try-finally

public methodB() throws ExceptionType{

 try
 {
  // 可能產生異常的語句
 }
 finally
 {
  // 一定要執行的語句
 }
}
這個例子與上一個例子很像,不同的是沒有catch,但增加了finally。它的意思如果方法B中try語句塊中如果產生了異常,則拋出由外層方法處理。然后方法B繼續執行finally中的語句


下面列舉三種錯誤的異常處理方法:

一、內層方法拋出一個異常,但本身有捕捉這個異常

public methodB() throws ExceptionType{
 
 try
 {
  // 可能產生異常的語句
 }
 catch (ExceptionType et)
 {
  // 相應處理措施
 }
}
在這個例子中,方法B在頭部聲明了會拋出一個類型為ExceptionType的異常,但在緊接下來的方法體又用了catch(ExceptionType et),如果產生了異常的話,會有什么結果呢?方法B拋出的異常馬上被自身的catch捕捉到,所以方法頭部的throws實際是沒有作用的。外層方法是接收不到方法B拋出的異常對象的。


二、在try中使用了return,在fianlly中又使用了return 

public methodB() {

 try
 {
  // 可能產生異常的語句
  return SOMEVALUE;
 }
 catch ()
 {
 }
 finally
 {
  return SOMEVALUE_2;
 }

}
在這個例證中,我們可以看到在try中返回了SOMEVALUE,那么程序執行到這里是否就結束了呢,其實不是的,因為finally中的語句是肯定會被執行到的,所以最后返回的是SOMEVALUE_2;那么意味者即使程序沒有拋出異常,最后也得不到正確的結果。


三、把catch(Exception e)放在所有catch塊的最前面
public methodB(){
 try
 {
  
 }
 catch (Exception e)
 {
  ...
 }
 catch (SubException se)
 {
  ...
 }

}
在這個例子中,catch(Exception e)被放在所有catch語句塊的最前面,因為Exception所有Exception類型的父類,所以意味著所有在try中產生的異常都會被捕捉到。后面其他的catch都是沒有用的,所以一定要把catch(Exception e)放在最后面,如果前面所有的異常類型都不符合,至少保證還有一個可以處理它。

 

總結:
A.如果能夠找到一個有意義的方法來捕獲異常,就立即引入這個方法
B.否則就應該考慮做某些處理后傳遞或者再次拋出異常,也可以把異常轉換為另一種形式,然后拋出一個新的異常
C.另一個方法是,可以完全忽略這個異常,而把它加到方法的頭部的throws語句中,由調用這個方法的方法來處理它
D.通過捕獲一個公共的異常超類,可以在一個塊里面捕獲多個異常,但不能夠用一個空的catch語句 塊來完全制止一個異常。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美视频裸体精品| 亚洲视频在线免费观看| 亚洲精品99久久久久中文字幕| 亚洲精品福利免费在线观看| 少妇精69xxtheporn| 久久久999精品免费| 麻豆成人在线看| 午夜欧美不卡精品aaaaa| 色老头一区二区三区| 日韩人体视频一二区| 欧美在线免费看| 亚洲天堂免费在线| 欧美理论片在线观看| 欧美激情啊啊啊| 色综合视频网站| 91在线|亚洲| 亚洲区一区二区| 日本精品视频网站| 91社区国产高清| 日韩高清免费在线| 亚洲成人av在线| 丝袜美腿亚洲一区二区| 日本高清视频精品| 色偷偷偷亚洲综合网另类| 在线观看国产精品日韩av| 欧美激情一级精品国产| 日本精品中文字幕| 日韩精品中文字幕久久臀| 国产欧美日韩精品专区| 国产精品一区=区| 美女黄色丝袜一区| 日韩二区三区在线| 日韩欧美aaa| 在线一区二区日韩| 日韩在线高清视频| 成人h猎奇视频网站| 欧美成人亚洲成人日韩成人| 国产成+人+综合+亚洲欧美丁香花| 欧美激情精品久久久久久变态| 国产日产久久高清欧美一区| 狠狠色香婷婷久久亚洲精品| 日韩精品极品在线观看播放免费视频| 亚洲国产欧美一区二区丝袜黑人| 国产精品一区二区三区免费视频| 欧美日韩高清区| 亚洲最大的网站| 国产精品9999| 欧美亚洲视频一区二区| 精品国内产的精品视频在线观看| 久久精品视频亚洲| 日本道色综合久久影院| 日韩高清中文字幕| 国产福利视频一区| 欧美亚洲第一区| 亚洲国产私拍精品国模在线观看| 国产精品久久久久久一区二区| 国产精品 欧美在线| 久久av红桃一区二区小说| 欧美乱妇高清无乱码| 一区国产精品视频| 国产欧美日韩丝袜精品一区| 亚洲国产欧美久久| 国产精品成人在线| 久久国产视频网站| 精品国产91久久久久久| 亚洲毛茸茸少妇高潮呻吟| 精品一区二区三区三区| 国产精品自产拍高潮在线观看| 91国语精品自产拍在线观看性色| 国产精品麻豆va在线播放| 欧美日韩xxx| 精品视频在线播放色网色视频| 欧洲成人午夜免费大片| 97在线看免费观看视频在线观看| 欧美国产在线电影| 亚洲国产精品电影| 97视频国产在线| 欧美日本高清一区| 亚洲黄色在线观看| 国产成人精品日本亚洲专区61| 久久影视电视剧凤归四时歌| 国产va免费精品高清在线观看| 国产小视频91| 中文字幕亚洲欧美| 日韩精品极品毛片系列视频| 91香蕉嫩草影院入口| 91九色蝌蚪国产| 69久久夜色精品国产69| 亚洲国产精品大全| 久久精品国产一区二区三区| 国产精品精品一区二区三区午夜版| 精品久久久久久久久国产字幕| 81精品国产乱码久久久久久| 亚洲国产天堂网精品网站| 日韩在线资源网| 91精品国产自产在线观看永久| xxx成人少妇69| 美女福利视频一区| 在线观看成人黄色| 久久久精品网站| 亚洲aⅴ日韩av电影在线观看| 亚洲免费一级电影| 91精品国产高清自在线看超| 亚洲福利在线看| 亚洲成色777777在线观看影院| 97视频在线观看网址| 成人黄色av免费在线观看| 国产精品jvid在线观看蜜臀| 91精品久久久久久久久久久久久| 一个色综合导航| 成人午夜在线观看| 国产丝袜一区二区三区免费视频| 久久久久久久av| 国产在线视频2019最新视频| 国产精品视频xxxx| 亚洲精品美女久久久久| 日韩高清免费观看| 国内精品小视频| 日韩一区二区三区xxxx| 欧美日韩国内自拍| 性色av香蕉一区二区| 国产精品第一区| 国产99久久久欧美黑人| 欧美有码在线观看视频| 亚洲已满18点击进入在线看片| 国产成人精彩在线视频九色| 精品久久久久久久大神国产| 91精品久久久久久久| 中文字幕免费精品一区| 久久人人爽人人爽爽久久| 国产成人拍精品视频午夜网站| 国产精品美女在线观看| 国产97在线亚洲| 97在线视频免费观看| 亚洲国产毛片完整版| 国产一区二区久久精品| 久久久久在线观看| 欧美韩日一区二区| 亚洲人成在线观| 欧美成人精品一区| 69久久夜色精品国产69| 国产视频精品在线| 国产精品wwww| 国产精品爱啪在线线免费观看| 国产一区二区三区18| 福利视频导航一区| 日韩欧美中文在线| 在线精品国产欧美| 欧洲精品在线视频| 亚洲人成啪啪网站| 欧美午夜精品伦理| 一色桃子一区二区| 国产精品久久久久久久久借妻| 91tv亚洲精品香蕉国产一区7ujn| 亚洲高清在线观看| 国产91精品久久久| 国产成人福利网站| 日韩中文字幕精品| 97超级碰在线看视频免费在线看| 中文精品99久久国产香蕉| 亚洲自拍高清视频网站| 欧美大全免费观看电视剧大泉洋| 精品视频久久久久久| 8090理伦午夜在线电影|