1. 程式人生 > >異常類層次結構

異常類層次結構

Throwable類 |------Error類:一般是指與虛擬機器相關的問題,如系統崩潰,虛擬機器錯誤,記憶體空間不足,方法呼叫棧溢等。對於這類錯誤的導致的應用程式中斷,僅靠 | |         |               程式本身無法恢復和和預防,遇到這樣的錯誤,建議讓程式終止。 |         |-------VirtualMachineError  |         |          |-------OutOfMemoryError:記憶體不夠用了 |         |          |-------StackOverFlowError:死迴圈或遞迴呼叫 |------Exception類:表示程式可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該儘可能處理異常,使程式恢復執行,而不應該隨意終止異常。           |------checked exception:這類異常都是Exception的子類 。異常的向上丟擲機制進行處理,假如子類可能產生A異常,那麼在父類中也必須                                                      throws A異常。可能導致的問題:程式碼效率低,耦合度過高;           |------unchecked exception:這類異常都是RuntimeException的子類,雖然RuntimeException同樣也是Exception的子類,但是它們是                                                             非凡的,它們不能通過client code來試圖解決,所以稱為Unchecked exception。

Java 中異常類的繼承關係圖:


Error和RuntimeException 及其子類都是未檢查的異常(unchecked exceptions),而所有其他的Exception類都是檢查了的異常(checked exceptions).
checked exceptions: 通常是從一個可以恢復的程式中丟擲來的,並且最好能夠從這種異常中使用程式恢復。比如FileNotFoundException, ParseException等。 unchecked exceptions: 通常是如果一切正常的話本不該發生的異常,但是的確發生了。比如ArrayIndexOutOfBoundException, ClassCastException等。從語言本身的角度講,程式不該去catch這類異常,雖然能夠從諸如RuntimeException這樣的異常中catch並恢復,但是並不鼓勵終端程式設計師這麼做,因為完全沒要必要。因為這類錯誤本身就是bug,應該被修復,出現此類錯誤時程式就應該立即停止執行。 因此,面對Errors和unchecked exceptions應該讓程式自動終止執行,程式設計師不該做諸如try/catch這樣的事情,而是應該查明原因,修改程式碼邏輯。 ps:一張異常結構圖,粉紅色的是受檢查的異常(checked execptions),綠色的未受檢查的異常(unchecked execptions)

相關推薦

異常層次結構

Throwable類 |------Error類:一般是指與虛擬機器相關的問題,如系統崩潰,虛擬機器錯誤,記憶體空間不足,方法呼叫棧溢等。對於這類錯誤的導致的應用程式中斷,僅靠 | |         |               程式本身無法恢復和和預防,遇到這樣的錯誤

Scala入門到精通——第十節 Scala層次結構、Traits初步

本節主要內容 Scala類層次結構總覽 Scala中原生型別的實現方式解析 Nothing、Null型別解析 Traits簡介 Traits幾種不同使用方式 1 Scala類層次結構 Scala中的類層次結構圖如下: 來源:Programmi

集合層次結構關係

翻譯人員: 鐵錨 翻譯時間: 2013年11月15日 原文連結: The interface and class hierarchy diagram for collections with an example program1. Collections(工具類) 和

Ext選單器件相關層次結構分析

在Ext中,選單器件(Menu Widgets)是通過幾個類的聯合來使用的,這些類包括:Ext.Toolbar、Ext.menu.Menu、Ext.menu.Item、Ext.menu.CheckItem,以及一些特殊型別的選單或選單項,比如選單Ext.menu.DateMe

Hibernate對映繼承之每個層次結構一張表(父子共用一張表,一個對映檔案)

整個類層次結構可以被對映到單張表。這張表把所有類的所有屬性的列都包括在層次結構中。由特定行表示的具體子類通過一個型別辨別標誌列的值進行識別。這個對映策略在效能和簡單性方面都勝出一籌。它是表示多型的最佳方法---多型和非多型的查詢都執行得很好---並且更易於手工實現。不用複雜的

Java集合框架的基本介面/層次結構

java.util.Collection [I] |—java.util.List [I] |—java.util.ArrayList [C] |—java.util.LinkedList [C] |—java.util.Vector [C]

Javascript 異常繼承層次

1.Error 類繼承層次 方框表示函式,橢圓表示物件,這個圖是用UMLet畫的,__proto__在UMLet中無法顯示,只能用--proto--代替了,而且ECMAscript裡面__proto__是一個訪問器屬性,用它暴露內部屬性[[Prototype]],細微的區別大家上MDN看吧。

異常層次結構異常處理(try、catch、finally)

在Java程式語言設計中,所有的異常都是由類來表示,異常物件都是派生於Throwable類的一個例項。下面是Java異常層析結構的一個簡單示意圖: 由圖可知,所有異常類都直接或間接的繼承於Throwable類。 具體分類: Java把所有非正常情況分為Error(錯

異常分類和層次結構

  異常是分層次級別的,方法1,2,3代表異常層級。假如是方法3呼叫方法2,方法2呼叫方法1。 當方法1出現異常時,首先方法1會捕獲異常try catch,接著方法1的程式碼會決定怎麼處理異常(記錄日誌,或者修復異常假裝沒發生,或者返回客戶端錯誤)假如不想處理異常,可以丟擲去

第十一課、異常的構建-------------狄泰軟件學院

end ++ pla ini images 數據 pointer oid 變量 一、自定義異常類 1、異常的類型可以是自定義的類類型 2、對於類類型的匹配依舊是之上而下的嚴格匹配 3、賦值兼容性原則在異常匹配中依然適用 所以要 (1)、匹配子類異常的catch放在上部 (2

python——異常

cti cau pts assign sha lose msg faq vision 捕獲異常try...except...finally...else python為高級語言,就是通過try...except...finally...else機制來處理錯誤。 讓我們來看一

了解AutoCAD對象層次結構 ——應用程序

圖標 接下來 sin 應用 窗口 .com 不能 實現 center 想象這樣一個場景:當您開始一天的工作,坐到電腦前面,用鼠標雙擊桌面上的AutoCAD Civil 3D圖標,這時一個AutoCAD Civil 3D應用程序將運行起來。打開Windows任務管理器,我們可

Angular_(作用域層次結構)

char level mod utf root -c func angular app html部分.......................................................................................

JavaSE(一) IO層次關系和各種IO流的用法總結

思想 單位 out 9.png 什麽 輸入流 謝謝 混亂 體系       今天把IO流的這一知點進行一下總結,因為在之前使用io流的時候,就只知道幾個重點常用的IO類,比如FileInputStream,BufferedInputStream(緩沖流)等等,但是不知道它處

【extjs6學習筆記】0.3 準備: 結構2

.cn ext 類庫 分享 nbsp image img extjs6 extjs 【extjs6學習筆記】0.3 準備: 類庫結構2

使用 MySQL 管理層次結構的數據

而不是 order 建立 添加節點 number 啟用 左移 gen and 概述 我們知道,關系數據庫的表更適合扁平的列表,而不是像 XML 那樣可以直管的保存具有父子關系的層次結構數據。 首先定義一下我們討論的層次結構,是這樣的一組數據,每個條目只能有一個父條目,可以有

Java集合框架的接口和層次關系結構圖

fly tsv nsh ats cap war sdc groovy fmb %E7%94%A8groovy%E8%84%9A%E6%9C%AC%E8%BF%9B%E8%A1%8C%E6%AF%8F%E6%97%A5%E5%B7%A5%E4%BD%9C%E7%9A%84%E

Java異常

編譯 它的 log stat 區別 不兼容 調用方法 相對 編輯 原文出自:http://blog.csdn.net/hguisu/article/details/6155636 在原文的基礎上做優化和編輯。 異常指不期而至的各種狀況,如:文件找不到、網絡連接失敗、非法參

C#結構(1)

mar 安全 類型安全 readline 參數 部分 public 方法的參數 play 1、結構功能特性? 實現代碼? 結構用struct關鍵字定義的,與類類似,但有本質區別。結構實質是一個值類型,它不需要對分配的。 結構的特性: (1)、結構作為參數傳遞時,是值傳遞。

[03] 結構和創建對象

是否 ava 字節 ati 成員變量 ++ 調用構造 syn span 1、類的結構和定義先回顧一下,類的基本概念:類定義了對象共同的屬性和行為(即方法)具體的某個對象需要通過類來進行申明那麽顯而易見地,類中應該包含的東西就有,屬性、方法,另外,既然對象要通過類來聲明,那麽