摘要:異常發生時如何處理,提供了解決辦法異常處理機制。只要在程序中產生了異常,就會用一個對應類型的異常對象來封裝異常,會試圖尋找異常處理程序來處理異常。中,異常處理的任務就是將執行控制流從異常發生的地方轉移到能夠處理這種異常的地方去。
前言
概述:異常就是java程序在運行過程中出現的錯誤。
異常發生時如何處理,java提供了解決辦法:異常處理機制。
java中的異??梢允呛瘮抵械恼Z句執行時引發的,也可以是程序員通過throw語句手動拋出。
只要在java程序中產生了異常,就會用一個對應類型的異常對象來封裝異常,JRE會試圖尋找異常處理程序來處理異常。
JDK中內建類一些常見的異常類,我們也可以自定義異常。
Throwable類是java異常類型的頂層父類,一個對象只有是Throwable類的直接或間接實例,他才是一個異常對象,才能被異常處理機制識別。
異常分類
檢查性異常:
(1)最具代表性的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預測的。 (2)例如要打開一個不存在文件時,一個異常就發生了,這些異常在編譯時不能被簡單的忽略。
運行時異常:
(1)運行時異常是可能被程序員避免的異常。 (2)與檢查性異常相反,運行時異??梢栽诰幾g時被忽略。
錯誤:
(1)錯誤不是異常,而是脫離程序員控制的問題。 (2)錯誤在代碼中通常被忽略。 (3)例如,當棧溢出時,一個錯誤就發生了,它們在編譯時也是檢查不到的。
異常分類圖解:
java標準庫內建了一些通用的異常,這些類以Throwable為頂層父類。
Throwable又派生出Error類和Exception類。
Error類:
(1)Error類以及他的子類的實例,代表了JVM本身的錯誤。 (2)錯誤不能被程序員通過代碼處理,Error很少出現。 (3)因此,程序員應該關注Exception為父類的分支下的各種異常類
Exception類:
(1)Exception及他的子類,代表程序運行時發送的各種不期望發生的事件。 (2)可以被java異常處理機制使用,是異常處理的核心。異常處理
異常處理機制能讓程序在發生異常時,按照代碼預先設定的異常處理邏輯,針對性的處理異常,讓程序盡最大可能的恢復正常并繼續執行,且保持代碼的清晰。
java中,異常處理的任務就是將執行控制流從異常發生的地方轉移到能夠處理這種異常的地方去。
在編寫代碼處理異常時,對于檢查異常,有兩種處理方式:
(1)使用try...catch...finally語句塊處理 (2)在函數簽名中使用throws聲明交給函數調用者caller去解決
try...catch...finally語句塊:
(1)try塊中放可能發生異常的代碼; (2)如果執行完try并且不發生異常,則接著去執行finally塊代碼以及finally之后的代碼; (3)如果執行try中代碼發生異常,就會嘗試匹配catch塊; (4)每一個catch塊用于處理一個異常; (5)異常匹配是按照catch塊的順序從上往下尋找的,只有第一個會匹配到的catch塊會被執行。 (6)try塊中的局部變量和catch塊中的局部變量,以及finally中的局部變量,它們之間不可以共享使用; (7)finally塊不管異常是否發生,只要對應的try塊執行了,它一定會執行。 (8)finally塊通常用來做資源釋放操作,關閉文件或者關閉數據庫等操作。
throws/throw:
(1)如果一個方法沒有捕獲到一個檢查性異常,那么該方法必須使用 throws 關鍵字來聲明。 (2)throws 關鍵字放在方法簽名的尾部。 (3)throws僅僅是將函數中可能出現的異常向調用者聲明,而自己并不處理異常。 (4)采用這種異常處理的原因可能是:方法本身不知道如何處理這種異常,或者說讓調用者處理更好,調用者需要為可能發生的異常負責。 (5)也可以使用 throw 關鍵字手動拋出一個異常,無論它是新實例化的還是剛捕獲到的。 (6)throw語句的后面必須是一個異常對象。參考鏈接
http://www.importnew.com/2661...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77114.html
摘要:導讀閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己進行查漏補缺,覺得本文對你有幫助的話,可以點贊關注一下。目錄一基礎篇二進階篇三高級篇四架構篇五擴 導讀:閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己...
摘要:努力避免硬編碼。一個類的總體行數盡量控制在行左右不超過一千行。函數注釋函數注釋采用,在每個函數或者過程的前面要有必要的注釋信息,包括函數或過程名稱功能描述輸入輸出及返回值說明調用關系及被調用關系說明等。 前言 推薦Google的Java編碼規范英文版: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 雖然...
摘要:楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數據提供網站數據采集和爬蟲軟件定制開發服務,服務范圍涵蓋社交網絡電子商務分類信息學術研究等。 楚江數據是專業的互聯網數據技術服務,現整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...
摘要:貢獻者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長時間,如果你一本書一本書看的話,的確要用很長時間。為了方便大家,我就把每本書的章節拆開,再按照知識點合并,手動整理了這個知識樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻者:飛龍版...
閱讀 2802·2021-11-17 09:33
閱讀 2179·2021-09-03 10:40
閱讀 544·2019-08-29 18:45
閱讀 2965·2019-08-29 16:21
閱讀 619·2019-08-29 11:11
閱讀 3400·2019-08-26 12:00
閱讀 2955·2019-08-23 18:19
閱讀 1098·2019-08-23 12:18