程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Java中異常的基本應用(一),Java應用(

Java中異常的基本應用(一),Java應用(

編輯:C++入門知識

Java中異常的基本應用(一),Java應用(


  在Java中,我們把異常當做一種對象來處理,正是異常機制的引入,使得我們的程序更加健壯。異常指示了一個不正常的條件,或者一個錯誤條件,簡單地說就是一個中斷了正常的指令流的事件。程序控制將無條件的拋至一個特定的代碼段,在此將捕獲異常並加以處理,由此將錯誤處理與程序的正常處理分離開來,錯誤就可以被單獨處理了。

  異常由Exception類及其子類的實例表示,大多數包都定義了自己的異常類型,它們往往是Exception的子類,我們也可以自己定義異常的類型。當錯誤條件出現時,應有一段代碼用來創建異常對象。Exception對象要作為一個參數傳遞給負責處理的代碼塊,這就涉及到異常的拋出和捕獲。

  如圖所示,可拋出的除了異常還有錯誤類。Error類通常指示一些重大的錯誤或者虛擬機錯誤,不應由程序捕獲。至於異常則分為兩類,分別是運行時異常和編譯時異常,或者可以叫做unchecked異常和checked異常。我們通常會遇到的IO異常和SQL異常都屬於checked異常,對於這種異常,編譯器要求我們必須對其進行處理。而runtime exception則可以不作處理,由虛擬機來接管。

  出現異常時,要麼直接處理,要麼向上拋出,等待上層調用方法進行處理。如果始終沒有得到處理,那麼如果是多線程就由Thread.run()拋出,如果是單線程就由main()拋出,之後相應的線程或整個程序退出。Runtime Exception和Error都可以不做處理,因此程序在遇到此類錯誤時,如果沒有處理塊程序就會終止退出。

  異常的處理方式:

  1、try-catch-finally結構處理異常

try{
    //正常代碼,包含可能出錯的代碼
    //如果有return,先走finally再回來return
}catch(異常類型 Exception e){
    //異常處理    
}finally{
  //finally塊,無論程序是否出現異常都會運行
  //異常的出口
}

  2、暫不處理,向上拋出

  throw用於手動拋出異常(系統無法識別的異常),throws進行聲明,用於說明方法有可能發成的錯誤類型,調用該方法時進行try-catch處理。如果不聲明,就需要在方法內進行try-catch處理。

public void setAge(int age) throws Exception{
    if(age>=15&&age<=40){
        this.age=age;
    }else{
        throw new Exception("年齡必須在15到40之間!");
    }

  該例在調用setAge方法時,進行try-catch處理,或者繼續向上拋出。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved