国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java異常處理

kid143 / 2081人閱讀

摘要:異常類有兩個主要的子類類和類。當不支持請求的操作時,拋出該異常。此異常由方法拋出,指示索引或者為負,或者超出字符串的大小。線程沒有處于請求操作所要求的適當狀態時拋出的異常。用非法索引訪問數組時拋出的異常。返回一個對象代表異常原因。

異常的定義

異常發生的原因有很多,比如:用戶輸入了非法數據,要打開的文件不存在,或者JVM內存溢出等。
異常又分為檢查性異常,這類異常再編譯時不能被忽略;運行時異常,這類異常往往是在編譯前無法預料的。

Exception類結構

Exception類和Error繼承于Throwable類。
所有的異常類是從java.lang.Exception類繼承的子類。
異常類有兩個主要的子類:IOException類和RuntimeException類。

Java 內置異常類

java.lang包中定義了一些異常類。
運行時異常類
ArithmeticException:當出現異常的運算條件時,拋出此異常。例如,一個整數"除以零"時,拋出此類的一個實例。
UnsupportedOperationException:當不支持請求的操作時,拋出該異常。
StringIndexOutOfBoundsException:此異常由 String 方法拋出,指示索引或者為負,或者超出字符串的大小。
NumberFormatException: 當應用程序試圖將字符串轉換成一種數值類型,但該字符串不能轉換為適當格式時,拋出該異常。
NullPointerException:當應用程序試圖在需要對象的地方使用 null 時,拋出該異常。
IndexOutOfBoundsException:指示某排序索引(例如對數組、字符串或向量的排序)超出范圍時拋出。
IllegalThreadStateException:線程沒有處于請求操作所要求的適當狀態時拋出的異常。
IllegalStateException:在非法或不適當的時間調用方法時產生的信號。
ArrayIndexOutOfBoundsException:用非法索引訪問數組時拋出的異常。如果索引為負或大于等于數組大小,則該索引為非法索引。
檢查性異常類
ClassNotFoundException:應用程序試圖加載類時,找不到相應的類,拋出該異常。
IllegalAccessException:拒絕訪問一個類的時候,拋出該異常。
InterruptedException:一個線程被另一個線程中斷,拋出該異常。
NoSuchMethodException:請求的方法不存在。
NoSuchFieldException:請求的變量不存在。
InstantiationException:當試圖使用 Class 類中的 newInstance 方法創建一個類的實例,而指定的類對象因為是一個接口或是一個抽象類而無法實例化時,拋出該異常。
CloneNotSupportedException:當調用 Object 類中的 clone 方法克隆對象,但該對象的類無法實現 Cloneable 接口時,拋出該異常。

Throwable類主要方法

public String getMessage():返回關于發生的異常的詳細信息。
public Throwable getCause():返回一個Throwable 對象代表異常原因。
public String toString():使用getMessage()的結果返回類的串級名字。
public Throwable fillInStackTrace():用當前的調用棧層次填充Throwable 對象棧層次,添加到棧層次任何先前信息中。
public void printStackTrace():打印toString()結果和棧層次到System.err,即錯誤輸出流。

捕獲異常

使用try和catch關鍵字可以捕獲異常,try/catch的語法如下:

try {
   // 程序代碼
} catch(ExceptionName e1) {
   //Catch 塊
}

Catch語句包含要捕獲異常類型的聲明。當保護代碼塊中發生一個異常時,try后面的catch塊就會被檢查。
如果發生的異常包含在catch塊中,異常會被傳遞到該catch塊,這和傳遞一個參數到方法是一樣。

多重異常捕獲
一個try代碼塊后面跟隨多個catch代碼塊:

try {
    // 程序代碼
 } catch(異常類型1 異常的變量名1) {
    // 程序代碼
 } catch(異常類型2 異常的變量名2) {
    // 程序代碼
 } catch(異常類型3 異常的變量名3) {
    // 程序代碼
 }

可以在ry語句后面添加任意數量的catch塊,如果保護代碼中發生異常,異常被拋給第一個catch塊。如果拋出異常的數據類型與ExceptionType1匹配,它在這里就會被捕獲,如果不匹配,它會被傳遞給第二個catch塊,直到異常被捕獲或者通過所有的catch塊。

finally關鍵字
finally關鍵字用來創建在try代碼塊后面執行的代碼塊,無論是否發生異常,finally代碼塊中的代碼總會被執行。

try {
    // 程序代碼
 } catch(異常類型 異常的變量名) {
    // 程序代碼
 } finally {
    // 程序代碼
 }
throws/throw關鍵字

如果一個方法沒有捕獲一個檢查性異常,那么該方法必須使用throws 關鍵字來聲明,也可以使用throw關鍵字拋出一個異常,無論它是新實例化的還是剛捕獲到的。

public class className
{
   public void deposit(double amount) throws RemoteException
   {
      // Method implementation
      throw new RemoteException();
   }
   //Remainder of class definition
}
聲明自定義異常

所有異常都必須是Throwable的子類:

如果希望寫一個檢查性異常類,則需要繼承Exception類。

如果你想寫一個運行時異常類,那么需要繼承RuntimeException 類。

class MyException extends Exception{
private double count;
   public MyException (double count)
   {
      this.count= count;
   } 
   public double getCount()
   {
      return count;
   }
}

一個異常類和其它任何類一樣,包含有變量和方法。

使用異常

public class CheckingAccount
{
   private double balance;
   private int number;
   public CheckingAccount(int number) {
      this.number = number;
   }
   public void deposit(double amount) {
      balance += amount;
   }
   public void withdraw(double amount) throws MyException {
      if(amount <= balance) {          
          balance -= amount;       
      } else {         
          double needs = amount - balance;          
          throw new MyException(needs);       
      }    
   }   
   public double getBalance() {      
      return balance;    
      }    
   public int getNumber() {      
         return number;    
   } 
}

調用該類方法時候使用try/catch語句就行了。

try {
     withdraw(600.00);
} catch (MyException e) {
     System.out.println("Sorry, but you are short $"+ e.getAmount());
     e.printStackTrace();
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70166.html

相關文章

  • 16.java異常處理

    摘要:不受檢查異常為編譯器不要求強制處理的異常,檢查異常則是編譯器要求必須處置的異常。潛在的異常處理器是異常發生時依次存留在調用棧中的方法的集合。當運行時系統遍歷調用棧而未找到合適的異常處理器,則運行時系統終止。異常處理涉及到五個關鍵字,分別是。 概念 程序運行時,發生的不被期望的事件,它阻止了程序按照程序員的預期正常執行,這就是異常。 異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并...

    asce1885 評論0 收藏0
  • Java異常處理

    摘要:異常也就是指程序運行時發生錯誤,而異常處理就是對這些錯誤進行處理和控制。有兩個重要的子類異常和錯誤,二者都是異常處理的重要子類,各自都包含大量子類。需要注意的是,一旦某個捕獲到匹配的異常類型,將進入異常處理代碼。 1,異常現象 程序錯誤分為三種:1,編譯錯誤;2,運行時錯誤;3,邏輯錯誤。 編譯錯誤是因為程序沒有遵循語法規則,編譯程序能夠自己發現并且提示我們錯誤的原因和位置,這...

    CarlBenjamin 評論0 收藏0
  • Java異常處理

    摘要:可以被異常處理機制使用,是異常處理的核心。非檢測異常,在編譯時,不會提示和發現異常的存在,不強制要求程序員處理這樣的異常。總體來說,語言的異常處理流程,從程序中獲取異常信息。處理運行時異常,采用邏輯合理規避同時輔助處理。 目錄 什么是Java異常? 當一個Exception在程序中發生的時候,JVM是怎么做的呢? 當我們編寫程序的時候如何對待可能出現的異常呢? 正文 1. 什么是J...

    Fourierr 評論0 收藏0
  • Java 異常處理

    摘要:下面是異常處理機制的語法結構業務實現代碼輸入不合法如果執行塊里業務邏輯代碼時出現異常,系統自動生成一個異常對象,該對象被提交給運行時環境,這個過程被稱為拋出異常。 Java的異常機制主要依賴于try、catch、finally、throw和throws五個關鍵字, try關鍵字后緊跟一個花括號括起來的代碼塊(花括號不可省略),簡稱try塊,它里面放置可能引發異常的代碼 catch后對...

    senntyou 評論0 收藏0
  • java異常處理機制的理解

    摘要:根據異常對象判斷是否存在異常處理。否則,范圍小的異常會因異常處理完成而無法處理。異常處理中使用作為異常的統一出口。 參考《第一行代碼java》《java程序設計教程》java中程序的錯誤有語法錯誤、語義錯誤。如果是語法性錯誤,在編譯時就可以檢查出來并解決。語義錯誤是在程序運行時出現的,在編譯時沒有錯誤,但在運行時可能會出現錯誤導致程序退出,這些錯誤稱為異常。在沒有異常處理的情況下,也即...

    khs1994 評論0 收藏0
  • Java異常處理 10 個最佳實踐

    摘要:為可恢復的錯誤使用檢查型異常,為編程錯誤使用非檢查型錯誤。檢查型異常保證你對錯誤條件提供異常處理代碼,這是一種從語言到強制你編寫健壯的代碼的一種方式,但同時會引入大量雜亂的代碼并導致其不可讀。在編程中選擇檢查型異常還是運行時異常。 異常處理是Java 開發中的一個重要部分。它是關乎每個應用的一個非功能性需求,是為了處理任何錯誤狀況,比如資源不可訪問,非法輸入,空輸入等等。Java提供了...

    Forelax 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<