異常,根據(jù)字面理解,有意外之意。把它置于代碼層面來(lái)理解,即阻止了當(dāng)前方法或作用域繼續(xù)執(zhí)行。在Java中,異常被當(dāng)做對(duì)象來(lái)處理,其基類(lèi)是Throwable。
創(chuàng)新互聯(lián)建站專(zhuān)注于昌江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供昌江營(yíng)銷(xiāo)型網(wǎng)站建設(shè),昌江網(wǎng)站制作、昌江網(wǎng)頁(yè)設(shè)計(jì)、昌江網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造昌江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供昌江網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。java常見(jiàn)的幾種異常:
1、空指針異常類(lèi):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、數(shù)據(jù)類(lèi)型轉(zhuǎn)換異常:java.lang.ClassCastException
當(dāng)試圖將對(duì)某個(gè)對(duì)象強(qiáng)制執(zhí)行向下轉(zhuǎn)型,但該對(duì)象又不可轉(zhuǎn)換又不可轉(zhuǎn)換為其子類(lèi)的實(shí)例時(shí)將引發(fā)該異常,如下列代碼。
Object obj = new Integer(0); String str = obj;
3、沒(méi)有訪問(wèn)權(quán)限:java.lang.IllegalAccessException
當(dāng)應(yīng)用程序要調(diào)用一個(gè)類(lèi),但當(dāng)前的方法即沒(méi)有對(duì)該類(lèi)的訪問(wèn)權(quán)限便會(huì)出現(xiàn)這個(gè)異常。對(duì)程序中用了Package的情況下要注意這個(gè)異常。
4、方法的參數(shù)錯(cuò)誤:java.lang.IllegalArgumentException
比如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ò)誤。
5、數(shù)組下標(biāo)越界異常:java.lang.IndexOutOfBoundsException
查看調(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è)異常。
6、文件已結(jié)束異常:EOFException
當(dāng)程序在輸入的過(guò)程中遇到文件或流的結(jié)尾時(shí),引發(fā)異常。因此該異常用于檢查是否達(dá)到文件或流的結(jié)尾
7、文件未找到異常:FileNotFoundException
當(dāng)程序試圖打開(kāi)一個(gè)不存在的文件進(jìn)行讀寫(xiě)時(shí)將會(huì)引發(fā)該異常。該異常由FileInputStream,FileOutputStream,RandomAccessFile的構(gòu)造器聲明拋出,即使被操作的文件存在,但是由于某些原因不可訪問(wèn),比如打開(kāi)一個(gè)只讀文件進(jìn)行寫(xiě)入,這些構(gòu)造方法仍然會(huì)引發(fā)異常。
8、字符串轉(zhuǎn)換為數(shù)字異常:NumberFormatException
當(dāng)試圖將一個(gè)String轉(zhuǎn)換為指定的數(shù)字類(lèi)型,而該字符串確不滿足數(shù)字類(lèi)型要求的格式時(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)行處理。
9、指定的類(lèi)不存在: java.lang.ClassNotFoundException
這里主要考慮一下類(lèi)的名稱(chēng)和路徑是否正確即可,通常都是程序試圖通過(guò)字符串來(lái)加載某個(gè)類(lèi)時(shí)可能引發(fā)異常。比如:調(diào)用Class.forName;或者調(diào)用ClassLoad的finaSystemClass;或者LoadClass;
10、實(shí)例化異常:java.lang.InstantiationException
當(dāng)試圖通過(guò)Class的newInstance方法創(chuàng)建某個(gè)類(lèi)的實(shí)例,但程序無(wú)法通過(guò)該構(gòu)造器來(lái)創(chuàng)建該對(duì)象時(shí)引發(fā)。Class對(duì)象表示一個(gè)抽象類(lèi),接口,數(shù)組類(lèi),基本類(lèi)型 。該Class表示的類(lèi)沒(méi)有對(duì)應(yīng)的構(gòu)造器。
以上就是java常見(jiàn)的幾種異常的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
網(wǎng)頁(yè)標(biāo)題:java常見(jiàn)的異常有哪些-創(chuàng)新互聯(lián)
URL標(biāo)題:http://redsoil1982.com.cn/article42/dsojhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、電子商務(wù)、靜態(tài)網(wǎng)站、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容