如何理解java中的異常和異常處理

異常與異常處理

工具/原料

eclipse

方法/步驟

對於異常的正常處理,能夠將異常提供給編程人員,或者是用戶,使得本來已經中斷了的程序以適當的方式繼續運行,或者是退出,並且能夠保存用戶的當前操作,或者進行數據回滾,最後再把占用的資源釋放掉。

java中所有不正常類都繼承於Throwable

Throwable有兩個子類,一個是Error,一個是Exception.

Error的出現有兩種情況 一種是:虛擬機錯誤,一種是線程死鎖ThreadDeath

Error出現是硬傷,系統問題。

而Exception 的出現則是因為你的編碼,環境,或者操作輸入出現了問題。

Exception有很多子類

一種是RuntimeException(非檢查異常),其他的異常則是(檢查異常)

能夠引起 運行時異常有這樣幾種情況:引用了一個空對象的屬性或者方法;也有可能是數組訪問越界;或者是一個錯誤的類型轉換,也有可能是算數方面引起的異常,比如說用整數去整除零。

空指針異常(NullPointerException)

String str=null;

System.out.println(str.length());

數組下標越界(ArrayIndexOutOfBoundsException)

int[] ary={1,2,3}

for{int i=0;i<=3;i++){

System.out.println(ary[i]);

}

類型轉換異常(ClassCastException)

class Animal{

}

class Dog extends Animal{

}

class Cat extends Animal{

}

public class Test{

public static void main(String[] args){

Animal a1=new Dog();

Animal a2=new Cat();

Dog d1=(Dog)a1;

Dog d2=(Dog)a2;

算數異常(ArithmeticException)

int one=12;

int two=0;

System.out.println(one/two);

運行時異常會由java虛擬機自動拋出,並自動捕獲。

運行時出現異常大部分情況說明代碼本身有問題,應該從邏輯上去改進代碼。

檢查異常

可能會出現文件異常(IOEXception)或者SQL異常等等各種各樣你想像不到的原因。你需要手動添加捕獲,或者處理語句。

相關文章

  1. 如何理解java中的類,屬性,方法和繼承

    如何理解java中的類,屬性,方法和繼承. 以車為例. 方法/步驟 如果把車看成是一種類,那麼我們沒說明它到底是哪一輛車.類,你可以理解為"類型",比如人類,是一個大類型,但是絕對 ...
  2. java 中的異常類問題

    程序在運行時出現不正常的情況! 對於問題的劃分: 1.       嚴重問題  java通過Error類進行描述! i.              對於Error一般不編寫針對性代碼進行處理: 2.  ...
  3. 如何理解Java中的適配器模式

    適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的. 一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中. 這裡寫一個小小的 ...
  4. Java中測試異常的多種方式

    處理java編譯過程中出現的異常問題是我們每個工程師所要掌握的,所以我就教大家幾種處理異常的方式 工具/原料 eclipse 方法/步驟 *先放源碼:實體類:public class Person { ...
  5. 如何理解Java中的抽象工廠模式

    抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態. 抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式. 抽象工廠模式可以向客戶端提供一個接口,使客戶端在不必指定產品的具體的情況下 ...
  6. 怎麼理解JAVA中的「包裝類」

    JAVA是一種面向對象語言,java中的類把方法與數據連接在一起,構成了自包含式的處理單元.但在JAVA中不能定義基本類型(primitive  type)對象,為了能將基本類型視為對象進行處理,並能 ...
  7. 深入理解Java中的HashMap的實現機制

    如果任何人讓我描述一下HashMap的工作機制的話,我就簡單的回答:"基於Hash的規則".這句話非常簡單,但是要理解這句話之前,首先我們得了解什麼是哈希,不是麼? 什麼是哈希 哈 ...
  8. 怎麼理解JAVA中的「對象」

    JAVA是一種面向對象的程序設計語言,對象是由類抽象出來的,所有的問題都是通過對象來處理,對象可以操作類的屬性和方法來解決問題,所以了解對象的產生.操作和消亡是十分必要的.下面就來講解對象在JAVA語 ...
  9. 用《蜘蛛俠》《蟻人》來理解Java中繼承的概念

    <蜘蛛俠><燕尾服><鋼鐵俠><蟻人>都是很好看的電影實際上也可用它們來理解關於繼承的概念. 工具/原料 <蜘蛛俠><蟻人>&l ...
  10. 怎樣理解JAVA中的靜態常量、變量和方法

    在介紹靜態變量.常量和方法之前首先需要介紹static關鍵字,因為由static修飾的變量.常量和方法被稱作靜態變量.常量和方法.那麼,下面我們一起看一下基礎知識吧 工具/原料 Eclipse jav ...
  11. java中的異常鏈

    常常會再捕獲一個異常後跑出另外一個異常,並且希望把異常原始信息保存下來,這被稱為異常鏈. 工具/原料 IntelliJ IDEA jdk1.8 方法/步驟 在捕獲異常以處理錯誤情況時, 完全有可能您希 ...
  12. 理解在Java中如何處理程序出現的異常

    理解在Java中如何處理程序出現的異常 方法/步驟 編寫Java程序經常會遇到錯誤.一類錯誤是語法錯誤或資源連結錯誤,此類錯誤一般在編譯過程中就可以發現:另一類錯誤是在程序運行過程中出現的錯誤,該類錯 ...
  13. java中異常處理原理及應用(2)

    Java 異常的處理 在 Java 應用程式中,對異常的處理有兩種方式:處理異常和聲明異常. 處理異常:try.catch 和 finally 若要捕獲異常,則必須在代碼中添加異常處理器塊.這種 Ja ...
  14. JAVA中繼承的理解方法

    JAVA中我們常常工作分類任務時,不會應用JAVA中的繼承方法,硬生生的需要幾個類別就寫幾個類別,導致方法繁瑣,還浪費時間,有了繼承方法就簡便多了,現在我給大家介紹下繼承的方法,希望能對大家有用. 方 ...
  15. java中泛型的理解

    泛型是Java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數. 工具/原料 java 方法/步驟 泛型是Java SE 1.5的新特性,泛型的本質是參數化類型 ...
  16. java中異常處理原理及應用(二)

    Java 異常的處理 在 Java 應用程式中,對異常的處理有兩種方式:處理異常和聲明異常. 處理異常:try.catch 和 finally 若要捕獲異常,則必須在代碼中添加異常處理器塊.這種 Ja ...
  17. Java 中經常出現的異常類

    1. java.lang.nullpointerexception 這個異常大家肯定都經常遇到,異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對 ...
  18. java中的多態怎麼理解

    什麼是多態?在java中多態要從哪些方面體現呢?下面向大家闡述. 方法/步驟 編譯器檢查對象聲明的類型和方法名 編譯器檢查方法調用的參數類型. 靜態綁定:若方法類型為priavtestaticfina ...
  19. java中,重寫,重載,抽象類接口的理解,初學者

    java中的重寫,重載,注意事項 工具/原料 eclipse 方法/步驟 重載,是指方法名相同,參數列表或參數類型不同: class void  show(){ } class  void show( ...
  20. java中的異常處理機制

                                     本圖說明了Java中的異常處理類 Throwable: 有兩個重要的子類:Exception(異常)和 Error(錯誤),二者都是 ...