成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細介紹Java異常處理機制

開發 后端
本文介紹的是java中的異常處理機制,想對你有幫助,一起來看。

關于java異常處理機制方面的內容,我們之前給大家介紹過,大家可以參考這篇文章,全面掌握Java的異常處理機制。下面來看本文的介紹。

當出現程序無法控制的外部環境問題(用戶提供的文件不存在,文件內容損壞,網絡不可用...)時,JAVA就會用異常對象來描述。

JAVA中用2種方法處理異常:

1.在發生異常的地方直接處理;

2.將異常拋給調用者,讓調用者處理。

JAVA異常可分為3種:

  • 檢查性異常:java.lang.Exception
  • 運行期異常:java.lang.RuntimeException
  • 錯誤:java.lang.Error

頂層是java.lang.Throwable類,檢查性異常,運行期異常,錯誤都是這個類的子孫類。

java.lang.Exception和java.lang.Error繼承自java.lang.Throwable,而java.lang.RuntimeException繼承自java.lang.Exception.

檢查性異常------程序正確,但因為外在的環境條件不滿足引發。例如:用戶錯誤及I/O問題----程序試圖打開一個并不存在的遠程Socket端口。這不是程序本身的邏輯錯誤,而很可能是遠程機器名字錯誤(用戶拼寫錯誤)。對商用軟件系統,程序開發者必須考慮并處理這個問題。JAVA編譯器強制要求處理這類異常,如果不捕獲這類異常,程序將不能被編譯。

運行期異常------這意味著程序存在bug,如數組越界,0被除,入參不滿足規范.....這類異常需要更改程序來避免,JAVA編譯器強制要求處理這類異常。

錯誤------一般很少見,也很難通過程序解決。它可能源于程序的bug,但一般更可能源于環境問題,如內存耗盡。錯誤在程序中無須處理,而有運行環境處理。

如何處理異常?

1.try...catch

程序運行產生異常時,將從異常發生點中斷程序并向外拋出異常信息。

 

  1. int x = (int)(Math.random()*5);  
  2. int y = (int)(Math.random()*10);  
  3. int[] z =new int[5];  
  4. try 
  5. {  
  6. System.out.println("y/x="+(y/x));  
  7. System.out.println("y="+y+"z[y]="+z[y]);  
  8. }  
  9. catch (ArithmeticException exc1)  
  10. {  
  11. System.out.println("算術運算異常:"+exc1.getMessage());  
  12. }  
  13. catch (ArrayIndexOutOfBoundsException exc2)  
  14. {  
  15. System.out.println("數據越界異常:"+exc2.getMessage());  

 

說明:ArithmeticException和ArrayIndexOutOfBoundsException都屬運行期異常:java.lang.RuntimeException,如果不用try...catch捕獲,程序也是可通過編譯的,但如果屬于檢查性異常:java.lang.Exception,必須而且一定要用try...catch...對其進行處理。

2.finally

如果把finally塊置try...catch...語句后,finally塊一般都會得到執行,它相當于一個***的保險,即使前面的try塊發生異常,而又沒有對應異常的catch塊,finally塊將馬上執行。

以下情形,finally塊將不會被執行:

(1)finally塊中發生了異常;

(2)程序所在線程死亡;

(3)在前面的代碼中用了System.exit();

(4)關閉CPU。

3.多個異常的處理規則:

定義多個catch可精確地定位異常。如果為子類的異常定義了特殊的catch塊,而父類的異常則放在另外一個catch塊中,此時,必須滿足以下規則:子類異常的處理塊必須在父類異常處理塊的前面,否則會發生編譯錯誤。所以,越特殊的異常越在前面處理,越普遍的異常越在后面處理。這類似于制訂防火墻的規則次序:較特殊的規則在前,較普通的規則在后。

自己也可以定義并拋出異常,方法是2步:創建異常,拋出異常(首先實例化一個異常對象,然后用thow拋出)合在一起就是----

thow new IOException("異常說明信息")。將創建異常,拋出異常合在一起的好處是:創建異常時,會包含異常創建處的行信息,異常被捕獲時可以通過堆棧跡(stack Trace)的形式報告這些信息。如果在同一行代碼創建和拋出異常,對于程序的調試將非常有用。

所以,thow new XXX()已經成為一個標準的異常拋出范式。

在定義一個方法時,方法塊中調用的方法可能會拋出異常,可用上面的thow new XXX()處理,如果不處理,那么必須在方法定義時,用thows聲明這個方法會拋出的異常。

對異常的處理,有一條行之有效的默認規則:向上拋出-----被調用類在運行過程中對遇到的異常一概不作處理,而是直接向上拋出,一直到最上層的調用類,調用類根據應用系統的需求和特定的異常處理規則進行處理,如向控制臺輸出異常堆棧信息,打印在日志文件中。用一句形象的話來說,就是誰使用,誰(最上層的調用類)處理。

希望通過本文的介紹,你能夠對java中的異常處理機制有了大體的了解。

責任編輯:于鐵 來源: 互聯網
相關推薦

2011-03-17 09:20:05

異常處理機制

2023-03-08 08:54:59

SpringMVCJava

2011-04-06 10:27:46

Java異常處理

2021-07-03 17:53:52

Java異常處理機制

2009-09-14 14:17:11

Linq異常處理

2009-08-05 18:09:17

C#異常處理機制

2010-03-05 15:40:16

Python異常

2024-03-04 10:00:35

數據庫處理機制

2021-03-02 09:12:25

Java異常機制

2009-07-31 11:28:42

錯誤處理機制ASP.NET

2023-06-15 14:09:00

解析器Servlet容器

2015-12-28 11:25:51

C++異常處理機制

2023-02-23 08:15:33

Spring異常處理機制

2011-07-01 14:20:59

Qt 事件

2011-07-01 14:14:34

Qt 事件

2025-06-09 01:15:00

2011-06-28 12:39:34

Java垃圾回收

2021-03-25 07:44:39

C++異常處理開發技術

2023-11-08 09:49:19

Java實踐

2009-06-02 10:32:30

Oracle并發處理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av网站在线看 | 久久综合久久综合久久综合 | 欧美国产日韩在线 | 中文字幕视频在线观看 | 日本黄色激情视频 | 精品国产1区2区3区 一区二区手机在线 | 激情久久网 | 亚洲国产视频一区 | 精品国产一区二区三区观看不卡 | 男女羞羞在线观看 | 亚洲天堂网站 | 在线观看久草 | 免费在线视频a | 国产精品久久久久久久久久免费看 | 国产观看 | 黄色免费网站在线看 | 欧美性猛交一区二区三区精品 | 97精品超碰一区二区三区 | 久免费视频 | 91精品国产高清一区二区三区 | 亚洲综合久久久 | 日韩欧美网 | www.久久久久久久久久久 | 亚洲精品视频三区 | 国产欧美一区二区三区在线看 | 九九99久久 | 色天堂视频| 男人影音 | 亚洲一区二区三区免费视频 | 激情欧美日韩一区二区 | 精品一区二区久久久久久久网精 | 久久久久久久久综合 | h在线观看| 亚洲+变态+欧美+另类+精品 | 亚洲一区二区三区在线播放 | 国产精品久久久久久中文字 | 成年人在线观看视频 | 精品网 | 欧美视频网 | av一区在线观看 | 99视频网 |