java異常類型,java異常類型正則匹配

本文目錄一覽:

Java中的異常有哪幾類

常見的異常有:

1、 java.lang.nullpointerexception 解釋是”程序遇上了空指針”,就是調用了未經初始化的對象或者是不存在。

2、java.lang.classnotfoundexception 解釋是”指定的類不存在”,這裡主要考慮一下類的名稱和路徑是否正確即可。

3、java.lang.arrayindexoutofboundsexception 解釋是”數組下標越界”,現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的範圍。

4、FileNotFoundException 解釋是「文件未找到異常」。

5、IOException 解釋是」輸入輸出流異常「。

6、NoSuchMethodException 解釋是”方法未找到異常”。

java異常分類

一、概念

如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下

會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用

這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。

二、異常分類

Throwable 是 Java 語言中所有錯誤或異常的超類,在 Java 中只有 Throwable 類型的實例才可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型。

實例分為 Error 和 Exception 兩種。

2.1、Error

Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果

出現了這樣的錯誤,除了告知用戶,剩下的就是儘力使程序安全的終止。

2.2、Exception

Exception 又有兩個分支 , 一個是運行時異常 RuntimeException , 一 個是檢查異常 CheckedException。

RuntimeException 如 :NullPointerException 、 ClassCastException ;

CheckedException 如: I/O 錯誤導致的 IOException、SQLException。

RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那麼一

定是程序員代碼書寫導致的錯誤.

CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強

製程序去捕獲此類異常,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一

般包括幾個方面:

試圖在文件尾部讀取數據

試圖打開一個錯誤格式的 URL

試圖根據給定的字元串查找 class 對象,而這個字元串表示的類並不存在

三、異常的處理方式

3.1、不處理

遇到異常問題不進行具體處理,而是繼續拋給調用者 (throw,throws)

拋出異常有三種形式,一是 throw,再就是 throws,還有一種系統自動拋異常。

public static void main(String[] args) {

String s = “abc”;

if(s.equals(“abc”)) {

/** 手動拋出一個數字格式化異常 **/

throw new NumberFormatException();

} else {

System.out.println(s);

}

}

int div(int a,int b) throws Exception{

return a/b;

}

3.2、處理

try catch 捕獲異常針對性處理方式

四、Throw 和 throws 的區別

throws 用在函數上,後面跟的是異常類,可以跟多個;

語法:(修飾符)(方法名)([參數列表])[throws(異常類)]{……}

public void doA(int a) throws Exception1,Exception3{……}

throw 用在函數內,後面跟的是異常對象。

throws E1,E2,E3隻是告訴程序這個方法可能會拋出這些異常,方法的調用者可能要處理這些異常,而這些異常E1,E2,E3可能是該函數體產生的。

throw則是明確了這個地方要拋出這個異常。

結合來看:

void doA(int a) throws IOException,{

try{

……

}catch(Exception1 e){

throw e;

}catch(Exception2 e){

System.out.println(“出錯了!”);

}

if(a!=b)

throw new Exception3(“自定義異常”);

}

throws 用來聲明異常,讓調用者知道該功能可能會出現的問題(比如上方的 IO 異常),可以給出預先的處理方式;

throw 拋出具體的問題對象,執行到 throw,功能就已經結束了,跳轉到調用者,並將具體的問題對象拋給調用者。

也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執行不到。

概括:

throws 表示出現異常的一種可能性,並不一定會發生這些異常;

throw 則是拋出了異常,執行 throw 則一定拋出了某種異常對象。

五、總結

了解 Exception、Error 兩種異常的區別,面試可能會問。

區分 throws、throw使用維度。

Java編程中 常見的異常有哪幾種

相信作為程序員的我們在對程序進行編譯過程中經常會遇到錯誤,或者在運行過程中出現錯誤,在這裡主要跟大家談談經常遇到的一些異常與錯誤,以及解決辦法。

異常是指程序在編譯或運行過程出現的錯誤。

在java.lang包中Throwable包含了所有的異常。

Error (錯誤) 和Exception(異常)

(1)Error(錯誤)

一旦發生無法修復,但可以避免發生。

常見錯誤類:

IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。

VirtualMachineError :虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。

StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。

OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。

以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).

(2)Exception(異常)

一旦發生,可以捕獲並處理,不會導致程序終止,有時可以避免有時無法避免。

異常的分類:

1.編譯時異常(需要強制處理)       2.運行時異常(不需要強制處理)

常見的異常有:

IOException:輸入輸出流異常

FileNotFoundException:文件找不到的異常

ClassNotFoundException:類找不到的異常

DataFormatException:數據格式化異常

NoSuchFieldException:沒有匹配的屬性異常

NoSuchMethodException:沒有匹配的方法異常

SQLException:資料庫操作異常

TimeoutException:執行超時異常

常見的運行時異常:

RuntimeException:運行時異常

NullPointerException:空指針異常

ArrayIndexOutofBoundsException:數組越界異

ClassCastException:類型轉換異常

IllegalArgumentException:非法的參數異常

InputMismatchException:輸入不匹配

以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception

既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。

(1) 如何處理編譯時異常?

方法一:將需要處理的代碼塊放在一個try…catch…中

try{

//需要處理異常的代碼

}catch(XXXException ef){

ef.printStackTrace();

}

我們方法一就是要將我們不確定的代碼放入try……catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那麼catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。

如以下代碼:

方法二:在出現異常的方法上直接向上拋出異常,throws

void ff() throws XXXException{

}

將出現的異常的代碼中,放入如上的方法中,就會將異常拋給該方法的上一級,在主函數上繼續向上拋,最終拋給JVM java虛擬機,讓JVM來解決該問題。

如代碼:

注意:在catch和throws的時候如果不確定是什麼異常,就直接寫一個Exception.

(2) 如何處理運行時異常?

1.一般情況下,運行時異常是不用處理的 

2.在某些情況下,如果對發生異常的結果進行處理,也可以對運行時異常進行try…catch…

以上就是一些我們處理編譯時異常和運行時異常的方法。

在程序出現異常時,有時候我們可以自定義異常,以便我們能夠發現是什麼異常。

那麼如何自定義異常??

1.當運行時,程序出現意外,可以拋出異常對象來結束程序

如:

//拋出運行時異常對象

RuntimeException ef = new RuntimeException(“下標越界!index:”+index+” ,size:”+size());

throw ef;

2.對於編譯時異常,同樣可以拋出異常對象

但在方法定義時候必須加上throws

如:

public void test(int t) throws Exception{

if (t 0 || t 100) {

Exception ef = new Exception(“數據錯誤”);

throw ef;

}

}

例如:

運行結果:

從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。

在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那麼到底三者有什麼區別?

Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它

的子類。

Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法後面要加Throw Exception來進行拋。

throw:是指在自定義異常時,如果方法出現異常,那麼將作為引用方法的對象拋出。即拋出異常。

希望對您有所幫助!~

Java語言中常見的異常類型有哪些

作為一隻敬業的程序員,就是不能接受我的編程出現bug!可見我們對bug是如此的深惡痛覺!它已成為我們職業生涯中的攔路虎,所以今天精心為大家總結一下Java中常見的幾種異常,望大家多多注意。

1、java.lang.NullPointerException(空指針異常)

調用了未經初始化的對象或者是不存在的對象。經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針, 即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化, 依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)。

2、 java.lang.ClassNotFoundException指定的類不存在

這裡主要考慮一下類的名稱和路徑是否正確即可,通常都是程序試圖通過字元串來載入某個類時可能引發異常。比如:調用Class.forName();或者調用ClassLoad的finaSystemClass();或者LoadClass();

3、 java.lang.NumberFormatException字元串轉換為數字異常

當試圖將一個String轉換為指定的數字類型,而該字元串確不滿足數字類型要求的格式時,拋出該異常.如現在講字元型的數據「123456」轉換為數值型數據時,是允許的。但是如果字元型數據中包含了非數字型的字元,如123#56,此時轉換為數值型時就會出現異常。系統就會捕捉到這個異常,並進行處理。

4、java.lang.IndexOutOfBoundsException數組下標越界異常

查看調用的數組或者字元串的下標值是不是超出了數組的範圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變數表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候先查看一下數組的length,以免出現這個異常。

5、java.lang.IllegalArgumentException方法的參數錯誤

比如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。

6、java.lang.IllegalAccessException沒有訪問許可權

當應用程序要調用一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程序中用了Package的情況下要注意這個異常。

7、java.lang.ArithmeticException數學運算異常

當算術運算中出現了除以零這樣的運算就會出這樣的異常。

8、java.lang.ClassCastException數據類型轉換異常

當試圖將對某個對象強制執行向下轉型,但該對象又不可轉換又不可轉換為其子類的實例時將引發該異常,如下列代碼。

Object obj = new Integer(0);

String str = obj;

9、 java.lang.FileNotFoundException文件未找到異常

當程序試圖打開一個不存在的文件進行讀寫時將會引發該異常。該異常由FileInputStream,FileOutputStream,RandomAccessFile的構造器聲明拋出,即使被操作的文件存在,但是由於某些原因不可訪問,比如打開一個只讀文件進行寫入,這些構造方法仍然會引發異常。

10、java.lang.ArrayStoreException數組存儲異常

當試圖將類型不兼容類型的對象存入一個Object[]數組時將引發異常,如

Object[] obj = new String[3]

obj[0] = new Integer(0);

11、java.lang.NoSuchMethodException方法不存在異常

當程序試圖通過反射來創建對象,訪問(修改或讀取)某個方法,但是該方法不存在就會引發異常。

12、 java.lang.NoSuchFiledException方法不存在異常

當程序試圖通過反射來創建對象,訪問(修改或讀取)某個filed,但是該filed不存在就會引發異常。

13、 java.lang.EOFException文件已結束異常

當程序在輸入的過程中遇到文件或流的結尾時,引發異常。因此該異常用於檢查是否達到文件或流的結尾

14、java.lang.InstantiationException實例化異常

當試圖通過Class的newInstance()方法創建某個類的實例,但程序無法通過該構造器來創建該對象時引發。Class對象表示一個抽象類,介面,數組類,基本類型 。該Class表示的類沒有對應的構造器。

15、java.lang.InterruptedException被中止異常

當某個線程處於長時間的等待、休眠或其他暫停狀態,而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常。

16、java.lang.CloneNotSupportedException 不支持克隆異常

當沒有實現Cloneable介面或者不支持克隆方法時,調用其clone()方法則拋出該異常。

17、java.lang.OutOfMemoryException 內存不足錯誤

當可用內存不足以讓Java虛擬機分配給一個對象時拋出該錯誤。

18、java.lang.NoClassDefFoundException 未找到類定義錯誤

當Java虛擬機或者類裝載器試圖實例化某個類,而找不到該類的定義時拋出該錯誤。

違背安全原則異常:SecturityException

操作資料庫異常:SQLException

輸入輸出異常:IOException

通信異常:SocketException

以上便是Java常見的幾種異常,希望各位同學都能編譯出完美的代碼,笑隱竹林中!編碼bug,江湖永無相見!

Java編程中常見異常有哪些?

【導語】在進行Java編程的過程中,我們需要通過代碼編寫進行程序的運行,都是人工進行代碼編寫,所以會出現不少異常現象,這都是屬於正常現象,但是遇到這些異常現象是需要大家了解並學會處理的,今天就先給大家介紹一下Java編程中常見異常有哪些?一起來看看吧。

Java中常見的異常:

1、空指針異常類:NullPointerException

2、數據類型轉換異常:java.lang.ClassCastException

3、沒有訪問許可權:java.lang.IllegalAccessException

4、方法的參數錯誤:java.lang.IllegalArgumentException

5、數組下標越界異常:java.lang.IndexOutOfBoundsException

6、文件已結束異常:EOFException

7、文件未找到異常:FileNotFoundException

8、字元串轉換為數字異常:NumberFormatException

9、指定的類不存在: java.lang.ClassNotFoundException

10、實例化異常:java.lang.InstantiationException

Java中數據類型轉換異常如何理解?

數據類型轉換異常:java.lang.ClassCastException

當試圖將對某個對象強制執行向下轉型,但該對象又不可轉換又不可轉換為其子類的實例時將引發該異常,如下列代碼。

Object obj = new Integer(0);

String str = obj;

Java中空指針異常類是什麼意思?

空指針異常類:NullPointerException

調用了未經初始化的對象或者是不存在的對象。經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針,

即把數組的初始化和數組元素的初始化混淆起來了。

數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化, 依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)。

Java常見異常有很多,以上這10種希望大家能夠提前了解,這樣能夠幫助大家在實際編寫代碼過程中,更快的進行一場處理,加油!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/151506.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-11 13:43
下一篇 2024-11-11 13:43

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • int類型變數的細節與注意事項

    本文將從 int 類型變數的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變數進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變數。 一、定義與聲明 int…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論