1. 程式人生 > >Java之異常處理具體使用總結

Java之異常處理具體使用總結

導讀:

1、異常的分類;

2、Java的異常處理機制:

 2.1、異常try catch finally;

 2.2、異常宣告:throws;

 2.3、人工丟擲異常;

3、異常處理原則;

4、自定義異常;

5、throw和throws的區別。

1、異常的分類:

  Java中的Throwable類時所有異常類的父類。

(1)Error:通常是指出現重大問題,如JVM系統內部錯誤、資源耗盡等;

            不編寫針對程式碼進行處理。

(2)Exception:在執行過程中出現的一些情況,如等;

                通常使用try catch finally處理。

   a、編譯時被檢測異常:只要是Exception和其子類都是,除了特殊子類RuntimeException和其子類。

                      這種問題一旦出現,在編譯時就檢測,讓這種問題有對應的處理方式。

   b、編譯時不檢測異常(執行時異常):就是Exception中的 RuntimeException和其子類。                 

                      這種問題的發生,會使程式無法進行,大多是因為呼叫者的原因導致或者引發了內部狀態的改變而導致。

                      那麼這種問題一般不處理,直接編譯通過在執行時讓呼叫者的程式強制停止 ,讓呼叫者對程式碼進行修正。

所以自定義異常時要麼繼承 ExceptiExcepti,要麼繼承RuntimeException。

2、Java的異常處理機制:

 2.1、異常try catch finally

   (1)try後可跟一個或多個catch語句塊;

   (2)finally是可選的,一旦有finally,不論try程式碼塊是否出現異常事件都會被執行。

public class Test2(){
  public static void main (String[] args){
    String aa[] = {"cat","dog","bird"};
    try{
      for(int i=0;i<5;i++){
        System.out.println(aa.[i]);
      }
    }catch(ArrayIndexOutOfBoundsException e){
      System.out.println("exception");
    }finally{
      System.out.println("finally");
    }
    System.out.println("end");
  }
}
程式執行輸出結果為:
cat
dog
bird
exception
finally
 2.2、異常宣告:throws

  在重寫方法中宣告丟擲的異常不允許丟擲比重寫方法範圍更大的異常型別。

public class TestThrowsException{
  public static void main(String[] args){
    TestThrowsException t = new TestThrowsException();
    try{
      t.readFile();
    }catch(IOException e){
      System.out.println(e);
    }
  }
  public void readFile()throws IOException{
    FileInputStream in = new FileInputStream("aa.txt");
    int b;
    b = in.read();
    while(b != 1){
      System.out.println((char)b);
      b = in.read();
    }
    in.close();
  }
}
異常被提交給呼叫者,如果仍找不到處理程式碼,程式會出錯退出。因此除非事先約定,否則在開發過程中不能在自己編寫的方法中使用此類異常處理方式。

 2.3、人工丟擲異常

  需要人工建立一個異常類,然後通過throw 語句實現丟擲操作。

  import java.util.Scanner;
  public class TestThrowException{
    public static void main(String[] args){
      TestThrowException t = new TestThrowException();
      System.out.println("請輸入一個偶數:");
      System.out.println("輸入的偶數是:"+t.inputNum());
    }
    public int inputNum(){
      int res = -1;
      Scanner scan = new Scanner(System.in);
      while(true){
        try{
          res = scan.nextInt();
          if(res<0 || (res%2!=0)){
            Exception e = new Exception("輸入的不是偶數!");
            throw e;
          }
          break;
        }catch(Exception e){
          System.out.println(e.getMessage()+"請重新輸入:");
          continue;
        }
      }
      return res;
    }
  }

程式執行輸出結果:

請輸入一個偶數:5
輸入的不是偶數!請重新輸入:-1
輸入的不是偶數!請重新輸入:2
輸入的偶數是:2
注:一般並不使用異常處理機制來檢查資料取值範圍,可通過if-else語句來做檢查。

3、異常處理原則:

(1)、方法內如果丟擲需要檢測的異常,那麼方法上必須要宣告。

       否則必須在方法內用try catch捕捉,否則編譯失敗。

(2)、如果呼叫到了宣告異常的方法,要麼try catch要麼throws,否則編譯失敗。

(3)、何時catch?何時throws?

       方法內可以解決處理掉的,用catch;

       解決不了的,用throws 告訴呼叫者,由呼叫者解決。

(4)、一個功能如果丟擲了多個異常,那麼呼叫時,必須有多個catch對應的處理。

       內部有幾個需要檢測的異常,就丟擲幾個異常,丟擲幾個異常,就用幾個catch。

注意:

(1)子類在重寫父類的方法時,父類的方法如果丟擲了異常,那麼子類的方法只能丟擲父類異常或者父類異常類的子類。

(2)如果父類丟擲了多個異常,那麼子類只能丟擲父類異常的子集。

          如果父類的方法中沒有丟擲異常,那麼子類重寫時絕對不能丟擲異常,只能try catch。

4、自定義異常:                

    自定義異常時,必須繼承Exception或者RuntimeException。

5、throw和throws的區別:

(1)throws使用在方法上。

     throw使用在方法內。

(2)throws丟擲的是異常類,可以丟擲多個,用逗號隔開。

     throw丟擲的是異常物件。

相關推薦

Java異常處理具體使用總結

導讀: 1、異常的分類; 2、Java的異常處理機制:  2.1、異常try catch finally;  2.2、異常宣告:throws;  2.3、人工丟擲異常; 3、異常處理原則; 4、自定義異常; 5、throw和throws的區別。 1、異常的分類:   Ja

Java異常處理,日期處理

出了 指定 初始化 ring () next height 常見問題 自定義 Java異常處理 異常:異常就是Java程序在運行過程中出現的錯誤。 異常由來:問題也是現實生活中一個具體事務,也可以通過java 的類的形式進行描述,並封裝成對象。其實就是Java對不正常情

java異常處理

init value etc .com level dem com ini war AboutException的測試: 1 package test; 2 import javax.swing.*; 3 4 class AboutException { 5

Java異常處理方法總結

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

Java異常處理與工具類

異常處理 ①   Error(錯誤) Error(錯誤) 一般指比較嚴重的問題,不做針對性處理,無法挽救;            OutOfMemoryError  記憶體溢位 ②   Exc

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

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

Java學習筆記異常處理

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

Java開發知識Java異常處理

ssa run 範圍 com 行處理 意思 操作 spa exce       Java開發知識之Java的異常處理 一丶異常概述   在講解異常之前,我們要搞清楚.什麽是異常. 通俗理解就是我們編寫的程序出問題了.進行處理的一種手段. 比如我們的QQ.有的時候就崩潰了.比

JAVA專案中常用的異常處理情況總結

1. java.lang.nullpointerexception 這個異常大家肯定都經常遇到,異常的解釋是"程式遇上了空指標",簡單地說就是呼叫了未經初始化的物件或者是不存在的物件,這個錯誤經常出現在建立圖片,呼叫陣列這些操作中,比如圖片未經初始化,或者圖片建立時的路徑錯誤等等。對陣列操作中出現空指標

Java常用的異常處理情況總結

Java中,所有異常都繼承自Throwable類(一個完整可用的類)。整體上分為Error、Exception兩個大類,Exception大類又分為UncheckedException(繼承於RuntimeException)和CheckedException(繼承於Exception,但不繼承於Runtim

關於JAVA專案中的常用的異常處理情況總結

1. JAVA異常處理 在面向過程式的程式語言中,我們可以通過返回值來確定方法是否正常執行。比如在一個c語言編寫的程式中,如果方法正確的執行則返回1.錯誤則返回0。在vb或delphi開發的應用程式中,出現錯誤時,我們就彈出一個訊息框給使用者。 通過方法的返回值我們並不能獲得錯誤的詳細資訊。可能因為方法由

java學習——關於搜尋異常處理總結

  根據網上的資料可以知道,異常處理是為了檢測到程式執行中發生的非正常情況的檢測而設立的一種機制,異常的英文單詞是exception,字面翻譯就是“意外、例外”的意思,也就是非正常情況。關於平常我們經常遇到的一些異常有:使用空的引用、陣列下標越界、記憶體溢位錯誤等,這些異常如果不加以解決的話會造成程

Java 常用類異常處理

Java異常類是對於程式中可能出現的錯誤或者異常的一種處理方式。在設計程式的過程中,對於可能出現的異常錯誤,比如說使用者輸入錯誤,裝置錯誤,磁碟滿了或者程式碼錯誤等等,通常採用異常處理的方式來進行處理可能的錯誤。 JAVA的異常處理機制:如果某個方法不能按照正常的途徑完成任務,就可以通過另一

JAVA基礎異常處理

我們在程式執行的過程中出現錯誤時很正常的,出錯,我們的程式碼執行就會停止,那麼我們可以使用異常處理來幫助程式設計師檢查可能出現的問題。 1.java中異常的分類,分為:java.lang.Error和java.lang.Exception,java.lang.Throwable類是兩種的父類

Java面向物件與多執行緒綜合實驗(二) 異常處理

理解異常的基本概念;瞭解Java異常的層次結構;熟悉並掌握Java異常的捕獲處理方法。 (1)閱讀Java™ Platform, Standard Edition 8 API Specification文件,瞭解後續程式設計中將要處理的IOException及其子類FileNotFoundE

Java學習筆記——異常處理

1.異常: 在程式執行時,發生了一些錯誤導致程式不能正常結束或者中斷 2.異常導致的後果 Java程式的執行過程中如果出現異常事件,可以生成一個異常類物件,該異常物件封裝了異常事件的資訊,並將其被提交給Java執行時系統,這個過程稱為丟擲異常,不處理的話會直接導致程式中斷。 3. 異常的分類

Java面試異常處理

B.異常處理 1.Java 中異常分為哪些種類 編譯時異常(也叫強制性異常)也叫CheckedException 和執行時異常(也叫非強制性異常)也叫 RuntimeException. 當前方法指導如何處理該異常,則用try...catch 塊來處理該異常

SpringMVC總結異常處理的三種方式

目錄 1.使用Spring MVC提供的簡單異常處理器SimpleMappingExceptionResolver 2.實現Spring的異常處理介面HandlerExceptionResolver 自定義自己的異常處理器 3.使用@ExceptionHandler註解實現異常處理

Java學習筆記異常處理(2)

1、throws與throw關鍵字 1.1 throws 關鍵字 在定義一個方法的時候通常可以用throws關鍵字宣告,使用throws宣告的方法表示此方法不處理異常,由此方法的呼叫者處理。 throws使用格式 public 返回值型別 方法名稱(引數列表…) thro

Java學習筆記異常處理(1)

在開發程式過程中,異常是大家都遇到過的一種狀況,異常和bug還有一些區別,bug通過是指程式邏輯上的錯誤,導致執行結果和預期不一致,而異常則不是,它的存在可能導致程式的崩潰,因此我們非常有必要處理好它。 1、異常基本情況 public class ExceptionDemo {