1. 程式人生 > >Java Exception——Java中的異常處理流程

Java Exception——Java中的異常處理流程

在Java程式設計語言中,異常物件都是派生於Throwable類的一個例項。如果Java中內建的異常類不能夠滿足需求,使用者可以建立自己的異常類。

異常的捕獲與處理:

try{

可能出現異常的語句

}catch(異常型別 異常物件){

處理異常

}catch(異常型別 異常物件){

處理異常

}[finally{不管是否出現異常,都會執行此句}]

         如果在try塊中產生了異常,則程式會跳轉到catch語句中找到匹配的異常型別進行相應的處理。最後不管程式是否會產生異常,肯定會執行到finally語句,finally語句就作為異常的統一出口。

ErrorException的區別:

         Error:指的是JVM錯誤,這個時候的程式並沒有執行,無法處理。

         Exception:指的是程式中出現的錯誤資訊,可以進行異常處理。

Java語言規範將派生於Error類或RuntimeException類的多有異常稱為未檢查(unchecked)異常,所有其他的異常稱為已檢查(checked)異常。

Java的異常處理流程:

a)      如果程式中產生了異常,那麼會自動的由JVM根據異常的型別例項化一個指定異常類的物件;

b)      如果程式中沒有任何異常處理操作,則這個異常類的例項化物件將交給JVM進行處理,而JVM的預設處理方式就是將異常資訊輸出,而後中斷程式執行;

c)      如果程式中存在了異常處理,會由try語句捕獲產生的異常物件;

d)      try之後的每一個catch進行匹配,如果匹配成功,則使用指定的catch進行處理,如果沒有匹配成功,則向後面的catch繼續匹配,如果沒有任何的catch匹配成功,將交給JVM執行預設處理;

e)      不管是否有異常都會執行finally程式,如果此時沒有異常,執行完finally會繼續執行程式中的其他程式碼,如果此時有異常沒能夠處理(沒有一個catch可以滿足)。那麼也會執行finally,但是執行完finally後,將交給JVM執行預設處理。

注意:在Java中,所有捕獲範圍小的異常型別,必須放在捕獲範圍大的異常型別前,否則會在編譯的時候報錯。

throws關鍵字

         Throws關鍵字主要是在方法的定義上使用的,表示此方法不進行異常的處理,而交給被呼叫處處理。

throwthrows的區別:

a)      Throw:使用者手工丟擲異常類的例項化物件;

b)      Throws:用於方法的宣告上,表示此方法不處理異常,而將異常交給程式被呼叫處處理。

RuntimeExceptionException的區別:

a)      異常(Exception)表示程式執行過程中可能出現的非正常狀態,執行時異常(RuntimeException)表示虛擬機器的通產操作中可能遇到的異常,是一種常見執行錯誤。Java編譯器要求方法必須宣告丟擲可能發生的非執行時異常,但是並不要求必須宣告丟擲未被捕獲的執行時異常,即Exception定義了必須處理的異常,而RuntimeException定義的異常可以選擇性的進行處理。

b)      RuntimeExceptionException的子類;

c)      常見的RuntimeExceptionNumberFormatExceptionClassCastExceptionNullPointerExceptionArithmeticExceptionArrayIndexOutOfBoundsException

建立自己的異常類,需要做的是定義一個派生於Exception的類,或者派生於Exception子類的類。

斷言 assert

         斷言指的是程式執行到某行後,其結果一定是預期的結果。

麼時候使用assert?

         Assert(斷言)在軟體開發中是一種常見的除錯方式,很多開發語言都支援這種機制。在實際使用中,assertion就是在程式中的一條語句,它對一個boolean表示式進行檢查,一個正確程式必須保證這個Boolean表示式的值為true;如果該值為false,說明程式已經處於不正確的狀態,系統將給出警告或退出。一般來說,assertion用於保證程式最基本、關鍵的正確性。Assertion檢查通常在開發和測試時開啟,為了提高效能,在專案釋出後,assertion檢查通常是關閉的。

相關推薦

Java Exception——Java異常處理流程

在Java程式設計語言中,異常物件都是派生於Throwable類的一個例項。如果Java中內建的異常類不能夠滿足需求,使用者可以建立自己的異常類。 異常的捕獲與處理: try{ 可能出現異常的語句 }catch(異常型別 異常物件){ 處理異常 }catch(異常型別 異常

java異常處理機制 throw拋出自定義業務邏輯異常 throws繼續拋出 catch捕獲後會自動繼續拋向調用方法

異常處理機制 ... cep super finally sta exc ace 避免 package com.swift; public class Exception_TestC { public static void main(String[] arg

java的專題之異常處理——將異常處理運用在用戶管理系統(很重要)

ava 例子 AS 異常處理 構造方法 str run 用戶 per 如何讓我們的異常處理變得足夠靈活—— 我們可以自己創建一個異常類(所有異常的通用操作) 在用戶管理系統中具體操作如下: 1、創建一個UserException的類 2、找到Superclass,點擊Bro

Java常用的異常處理情況及關於開發異常處理的建議

cloneabl 軟件 完整性 內置 加載類 異常信息 dstat 應用程序 dsta 本周四老師由一個簡單程序將問題引出,講授了Java中異常處理的情況。根據課件內容及上網查閱資料,將關於JAVA項目中的常用的異常處理情況總結如下: 首先什麽是異常(Exception

java專案異常處理情況

一,基本概念   異常是程式在執行時出現的不正常情況。是Java按照面向物件的思想將問題進行物件封裝。這樣就方便於操作問題以及處理問題。  異常處理的目的是提高程式的健壯性。你可以在catch和finally程式碼塊中給程式一個修正機會,使得程式不因不可控制的異常而影響程式的流程。同時,通過獲取Java異常

JAVA 異常處理的最佳實踐

前言 異常處理的問題之一是知道何時以及如何去使用它。我會討論一些異常處理的最佳實踐,也會總結最近在異常處理上的一些爭論。 作為程式設計師,我們想要寫高質量的能夠解決問題的程式碼。但是,異常經常是伴隨著程式碼產生的副作用。沒有人喜歡副作用,因此我們會試圖用自己的方式來解決這

JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什麼意義?在try塊可以丟擲異常嗎?

   Java通過面向物件的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的介面。 在Java中,每個異常都是一個物件,它是Throwable類或其它子類的例項。當一個方法出現異常後便 丟擲一個異常物件,該物件中包含有異常資訊,呼叫這個物件的方法可以捕獲到這個異常

Java語言如何進行異常處理,關鍵字:throws、throw、try、catch、finally分別代表什麼意義?在try塊可以丟擲異常嗎?

try塊表示程式正常的業務執行程式碼。如果程式在執行try塊的程式碼時出現了“非預期”情況,JVM將會生成一個異常物件,這個異常物件將會被後面相應的catch塊捕獲。 catch塊表示一個異常捕獲塊。

JAVA 語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally 分別代表什麼意義?在 try 塊可以丟擲異常嗎?

Java 通過面向物件的方法進行異常處理,把各種不同的異常進行分類,並 提供了良好的介面。在 Java 中,每個異常都是一個物件,它是 Throwable 類或 其它子類的例項。當一個方法出現異

Java EE專案異常設計及處理總結

異常,為我們處理非正常的業務流程提供了很好的解決方案,如果你有過dbase、c、pascal等過程式語言開發的經歷,你一定會深刻體會到,異常機制給你的程式碼可讀行、可維護性帶來的好處,同時,程式的健壯性也得到了增強。 在 java專案中,異常設計要注意下面的幾點。 一、自定義異常父類的選擇 A、自定義異常的

關於對Java異常處理的try catch和throw的理解(淺顯理解)

一.try catch方法   A.什麼try catch 方法     try catch是異常處理中一種方法,檢測並捕捉異常然後進行處理     try是檢測異常,catch是捕捉異常   B try catch的三種格式   格式1   try{     語句體;   }catch{    

java application的異常處理流程

1. java application 異常發生後的程式碼流程: 程式碼流程是函式檔案 frameworks/base/core/java/com/android/internal/os/RuntimeInit.java的函式UncaughtHandler控制的:    

Java異常處理方法總結

Java中常用的異常處理有3中方式: 1.try {} catche{} try...catch 適合處理程式設計師可以控制和使用者輸入有誤的情況,把認為可能會出現異常的程式碼放到try後面的{},異常後執行的程式碼放到catche的{}裡面,catche的{}後面的語句正

JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什麼意義?在try塊可以丟擲異常

  Java通過面向物件的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的介面。在Java中,每個異常都是一個物件,它是Throwable類或其它子類的例項。當一個方法出現異常後便丟擲一個異常物件,該物件中包含有異常資訊,呼叫這個物件的方法可以捕獲到這個異常並進行

Java 異常的捕獲及處理(異常處理流程)

import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner in

java異常處理finally和return語句的執行順序

finally程式碼塊的語句在return之前一定會得到執行 如果try塊中有return語句,finally程式碼塊沒有return語句,那麼try塊中的return語句在返回之前會先將要返回的值儲存,之後執行finally程式碼塊,最後將儲存的返回值返回,

Java之今天的異常處理了嗎

java 輸入 也會 包裝 應用程序 ans 捕獲 子類 子句 異常:指在程序運行過程中發生的異常事件,比如除0溢出、數組越界、文件找不到等,這些事件的發生將阻止程序的正常運行。 (這裏需要註意,異常字面上的意思就是異於平常的錯誤,這裏要和程序本身的設計錯誤區別開。筆者開始

Java學習筆記之異常處理

span 怎麽辦 空指針 處理 異常處理 空指針異常 一個 算數 輸入 一.異常的分類   1.由Java虛擬機拋出的異常(Error):程序無法處理的問題,用戶不用去進行處理(虛擬機錯誤丶內存溢出錯誤丶線程死鎖)    2.Exception異常:程序本身可以進行處理的異

Java框架-SpringMVC統一異常處理、ssm框架整合

1. SpringMVC中異常處理 1.1 各層處理異常原則即實現方法 1.1.1 各層處理異常原則 dao:不處理,拋異常; service:不處理,拋異常; controller/servlet:必須處理,否則錯誤資訊將直接在瀏覽器顯示給使用者看。 1.1.2 異

005 異常處理 java基礎學習總結——異常處理

 java基礎學習總結——異常處理 一、異常的概念   異常指的是執行期出現的錯誤,也就是當程式開始執行以後執行期出現的錯誤。出現錯誤時觀察錯誤的名字和行號最為重要。    1 package cn.javastudy.summary; 2 3 p