日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaSE基础知识(6)—异常和异常处理

發布時間:2023/11/29 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE基础知识(6)—异常和异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、異常的理解及體系結構圖

1、理解

異常:程序運行過程中發生的不正常現象。
java中的錯誤:
  語法錯誤
  運行異常
  邏輯錯誤

2、體系圖

java程序在執行過程中所發生的異常分為兩類:

  Error:Java虛擬機無法解決的嚴重問題。如JVM系統內部錯誤、資源耗盡等嚴重情況(StackOverflowError、OOM),一般不編寫針對性的代碼進行處理

  Exception:其它因編程錯誤或偶然的外在因素導致的一般性問題,可以使用針對性的代碼進行處理。一般有兩種解決方法:一是遇到錯誤就終止程序的運行。另一種方法是由程序員在編寫程序時,就考慮到錯誤的檢測、錯誤消息的提示,以及錯誤的處理。

  常見的異常可分為兩類:運行時異常和編譯時異常。異常體系圖如下,其中紅色部分為受檢異常,藍色部分為非受檢異常。

二、異常處理的方式

1、抓模型

(1)語法

try{
  ①
  //容易出現異常的代碼
  ②
}catch(異常類型 e){
  //處理異常的語句
  ③
}finally{
  //最后一定要執行的語句
  ④
}

執行順序 ★
  如果出現了異常: ①③④一定執行,⑤不一定。如果異常被成功捕獲,而且沒有其他跳轉,⑤會執行,否則⑤不執行
  如果沒有出現異常:①②④一定執行, ⑤不一定。如果沒有其他跳轉,⑤會執行,否則⑤不執行

(2)好處

①提高了用戶體驗性
②將正常代碼和容易出錯的代碼實現了分離,提高了代碼的閱讀性和維護性
③如果成功捕獲異常,則起到了攔截異常的作用,異常后面的語句會正常執行

(3)注意事項

①catch塊可以省略
②finally塊可以省略
③盡量使用多個catch塊,代替多個try catch
④不能濫用異常
⑤catch塊可以有多個,但如果catch塊的異常類型為父類類型,需要將該catch塊放在最后

2、拋模型(默認異常處理方式)

(1)語法

修飾符 返回類型 方法名(參數列表) throws 異常類型XX{
}
注意:異常類型XX為方法中容易出現的異常的類型或父類類型

(2)執行特點

將異常拋給調用方,如果調用方不處理,則繼續往上拋,直到拋給jvm。而jvm使用的是默認的處理方式。e.printStackTrace()

三、自定義異常

1、語法

class XXException extends ExceptionRuntimeException{
  public XXException(){}
  public XXException(String msg){super(msg);}
}

2、如何使用自定義異常

在需要生成異常對象的地方,添加如下語句:
  throw new XXException(異常信息);

四、常見問題解答

1、生成異常對象的方式

2種方式:
方式一:系統自動生成異常對象
  針對于:系統定義好的異常類
方式二:手動生成異常對象
  針對于:系統定義好的異常類和自定義的異常類
  語法:throw new 異常類型(實參);

2、子類重寫父類方法的異常說明

子類重寫的方法拋出的異常類型可以相同或為子類類型

class Father{
  public void run() throws Exception{}
}
class Son extends Father{
  public void run() throws Exception{}
}
class Daughter extends Father{
  public void run() throws IOException{}
}

3、throws和throw對比

?說明放的位置后面跟的東西
throws異常處理的方式方法聲明的地方異常類型 public void method throws XXXException{}
throw生成異常對象的關鍵字方法體中異常對象 throw new XXXException(msg)

轉載于:https://www.cnblogs.com/truthseeking/p/9538320.html

總結

以上是生活随笔為你收集整理的JavaSE基础知识(6)—异常和异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。