日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java中常见的十八种异常!

發(fā)布時(shí)間:2024/9/30 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中常见的十八种异常! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作為一只敬業(yè)的程序員,就是不能接受我的編程出現(xiàn)bug!可見我們對(duì)bug是如此的深惡痛覺(jué)!它已成為我們職業(yè)生涯中的攔路虎,所以今天小千精心為大家總結(jié)一下Java中常見的幾種異常,望大家多多注意。

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

調(diào)用了未經(jīng)初始化的對(duì)象或者是不存在的對(duì)象。經(jīng)常出現(xiàn)在創(chuàng)建圖片,調(diào)用數(shù)組這些操作中,比如圖片未經(jīng)初始化,或者圖片創(chuàng)建時(shí)的路徑錯(cuò)誤等等。對(duì)數(shù)組操作中出現(xiàn)空指針, 即把數(shù)組的初始化和數(shù)組元素的初始化混淆起來(lái)了。數(shù)組的初始化是對(duì)數(shù)組分配需要的空間,而初始化后的數(shù)組,其中的元素并沒(méi)有實(shí)例化, 依然是空的,所以還需要對(duì)每個(gè)元素都進(jìn)行初始化(如果要調(diào)用的話)。

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

這里主要考慮一下類的名稱和路徑是否正確即可,通常都是程序試圖通過(guò)字符串來(lái)加載某個(gè)類時(shí)可能引發(fā)異常。比如:調(diào)用Class.forName();或者調(diào)用ClassLoad的finaSystemClass();或者LoadClass();

3、java.lang.NumberFormatException字符串轉(zhuǎn)換為數(shù)字異常

當(dāng)試圖將一個(gè)String轉(zhuǎn)換為指定的數(shù)字類型,而該字符串確不滿足數(shù)字類型要求的格式時(shí),拋出該異常.如現(xiàn)在講字符型的數(shù)據(jù)“123456”轉(zhuǎn)換為數(shù)值型數(shù)據(jù)時(shí),是允許的。但是如果字符型數(shù)據(jù)中包含了非數(shù)字型的字符,如123#56,此時(shí)轉(zhuǎn)換為數(shù)值型時(shí)就會(huì)出現(xiàn)異常。系統(tǒng)就會(huì)捕捉到這個(gè)異常,并進(jìn)行處理。

4、java.lang.IndexOutOfBoundsException數(shù)組下標(biāo)越界異常

查看調(diào)用的數(shù)組或者字符串的下標(biāo)值是不是超出了數(shù)組的范圍,一般來(lái)說(shuō),顯示(即直接用常數(shù)當(dāng)下標(biāo))調(diào)用不太容易出這樣的錯(cuò),但隱式(即用變量表示下標(biāo))調(diào)用就經(jīng)常出錯(cuò)了,還有一種情況,是程序中定義的數(shù)組的長(zhǎng)度是通過(guò)某些特定方法決定的,不是事先聲明的,這個(gè)時(shí)候先查看一下數(shù)組的length,以免出現(xiàn)這個(gè)異常。

5、java.lang.IllegalArgumentException方法的參數(shù)錯(cuò)誤

比如g.setColor(int red,int green,int blue)這個(gè)方法中的三個(gè)值,如果有超過(guò)255的也會(huì)出現(xiàn)這個(gè)異常,因此一旦發(fā)現(xiàn)這個(gè)異常,我們要做的,就是趕緊去檢查一下方法調(diào)用中的參數(shù)傳遞是不是出現(xiàn)了錯(cuò)誤。

6、java.lang.IllegalAccessException沒(méi)有訪問(wèn)權(quán)限

當(dāng)應(yīng)用程序要調(diào)用一個(gè)類,但當(dāng)前的方法即沒(méi)有對(duì)該類的訪問(wèn)權(quán)限便會(huì)出現(xiàn)這個(gè)異常。對(duì)程序中用了Package的情況下要注意這個(gè)異常。

7、java.lang.ArithmeticException數(shù)學(xué)運(yùn)算異常

當(dāng)算術(shù)運(yùn)算中出現(xiàn)了除以零這樣的運(yùn)算就會(huì)出這樣的異常。

8、java.lang.ClassCastException數(shù)據(jù)類型轉(zhuǎn)換異常

當(dāng)試圖將對(duì)某個(gè)對(duì)象強(qiáng)制執(zhí)行向下轉(zhuǎn)型,但該對(duì)象又不可轉(zhuǎn)換又不可轉(zhuǎn)換為其子類的實(shí)例時(shí)將引發(fā)該異常,如下列代碼。

Object obj = new Integer(0);

String str = obj;

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

當(dāng)程序試圖打開一個(gè)不存在的文件進(jìn)行讀寫時(shí)將會(huì)引發(fā)該異常。該異常由FileInputStream,FileOutputStream,RandomAccessFile的構(gòu)造器聲明拋出,即使被操作的文件存在,但是由于某些原因不可訪問(wèn),比如打開一個(gè)只讀文件進(jìn)行寫入,這些構(gòu)造方法仍然會(huì)引發(fā)異常。

10、java.lang.ArrayStoreException數(shù)組存儲(chǔ)異常

當(dāng)試圖將類型不兼容類型的對(duì)象存入一個(gè)Object[]數(shù)組時(shí)將引發(fā)異常,如

Object[] obj = new String[3]

obj[0] = new Integer(0);

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

當(dāng)程序試圖通過(guò)反射來(lái)創(chuàng)建對(duì)象,訪問(wèn)(修改或讀取)某個(gè)方法,但是該方法不存在就會(huì)引發(fā)異常。

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

當(dāng)程序試圖通過(guò)反射來(lái)創(chuàng)建對(duì)象,訪問(wèn)(修改或讀取)某個(gè)filed,但是該filed不存在就會(huì)引發(fā)異常。

13、java.lang.EOFException文件已結(jié)束異常

當(dāng)程序在輸入的過(guò)程中遇到文件或流的結(jié)尾時(shí),引發(fā)異常。因此該異常用于檢查是否達(dá)到文件或流的結(jié)尾

14、java.lang.InstantiationException實(shí)例化異常

當(dāng)試圖通過(guò)Class的newInstance()方法創(chuàng)建某個(gè)類的實(shí)例,但程序無(wú)法通過(guò)該構(gòu)造器來(lái)創(chuàng)建該對(duì)象時(shí)引發(fā)。Class對(duì)象表示一個(gè)抽象類,接口,數(shù)組類,基本類型 。該Class表示的類沒(méi)有對(duì)應(yīng)的構(gòu)造器。

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

當(dāng)某個(gè)線程處于長(zhǎng)時(shí)間的等待、休眠或其他暫停狀態(tài),而此時(shí)其他的線程通過(guò)Thread的interrupt方法終止該線程時(shí)拋出該異常。

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

當(dāng)沒(méi)有實(shí)現(xiàn)Cloneable接口或者不支持克隆方法時(shí),調(diào)用其clone()方法則拋出該異常。

17、java.lang.OutOfMemoryException 內(nèi)存不足錯(cuò)誤

當(dāng)可用內(nèi)存不足以讓Java虛擬機(jī)分配給一個(gè)對(duì)象時(shí)拋出該錯(cuò)誤。

18、java.lang.NoClassDefFoundException 未找到類定義錯(cuò)誤

當(dāng)Java虛擬機(jī)或者類裝載器試圖實(shí)例化某個(gè)類,而找不到該類的定義時(shí)拋出該錯(cuò)誤。

違背安全原則異常:SecturityException

操作數(shù)據(jù)庫(kù)異常:SQLException

輸入輸出異常:IOException

通信異常:SocketException

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

本文來(lái)自千鋒教育,轉(zhuǎn)載請(qǐng)注明出處。

總結(jié)

以上是生活随笔為你收集整理的Java中常见的十八种异常!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。