本篇文章給大家分享的是有關(guān)怎么在Android中自定義拋出異常,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了巴林右旗免費(fèi)建站歡迎大家使用!
一. throw 和 throws
異常通常的處理方式有 throw/throws 以及 try-catch 兩種。今天我們主要講解throw/throws這一類的處理。
throw:拋出異常,一般是一個(gè)具體的異常。放置在方法體內(nèi),當(dāng)代碼執(zhí)行此行并拋出一個(gè)具體的異常以后,此異常下面的邏輯代碼均不會(huì)執(zhí)行。
throws:拋出異常的聲明,一般放在方法頭,表示此方法的執(zhí)行可能會(huì)引起某個(gè)異常,或某幾個(gè)異常,throws 后面可以聲明多個(gè)異常,如 :
public static void function1() throws Exception1, Exception2, Exception3{ }
而 throws引起的異常,一般由調(diào)用此方法的方法去處理。
二. 異常類型
java開發(fā)異常大致分為三種:
java.lang.Error
java.lang.Exception
java.lang.RuntimeException
這三個(gè)異常類都繼承于他們的父類 Throwable,其中 Error 和 Exception是 Throwable 的兩大子類。Error 一般是系統(tǒng)錯(cuò)誤,我們不予討論,一般我們程序出現(xiàn)bug都是屬于Exception類,RuntimeException 是 Exception的一個(gè)子類。今天我要介紹的就是 RuntimeException 的幾個(gè)常見子類。
2.1 java.lang.NullPointerException
空指針異常,一般是對(duì)象未創(chuàng)建或者不存在造成的。
2.2 ava.lang.ClassNotFoundException
類異常,一般是類不存在,排查的時(shí)候注意是不是類名稱寫錯(cuò)或者路徑搞錯(cuò)了
2.3 java.lang.ArrayIndexOutOfBoundsException
下標(biāo)越界異常,一般出現(xiàn)在數(shù)組或集合的操作過程中
2.4 java.lang.IllegalArgumentException
方法參數(shù)錯(cuò)誤
2.5 java.lang.IllegalAccessException
沒有訪問權(quán)限,一般是類的權(quán)限訪問出問題了
2.6 ArithmeticExecption
算術(shù)異常
2.7 ClassCastException
類型強(qiáng)轉(zhuǎn)異常
2.8 NegativeArrayException
數(shù)組負(fù)下標(biāo)異常
2.9 SecturityException
違背安全原則異常
2.10 EOFException
文件已結(jié)束異常
2.11 FileNotFoundException
文件未找到異常
2.12 NumberFormatException
字符串轉(zhuǎn)換為數(shù)字異常
2.13 SQLException
操作數(shù)據(jù)庫異常
2.14 IOException
輸入輸出異常
2.15 NoSuchMethodException
方法未找到異常
2.16 NoSuchFieldException
屬性不存在異常
2.17 RuntimeException
運(yùn)行時(shí)異常
2.18 TypeNotPresentException
類型不存在異常
當(dāng)然,其實(shí)還有很多其他異常,這里就不一一列舉了。
三. 仿寫異常及其好處
看了怎么多的異常,那怎么仿寫一個(gè)異常呢?下面給出一個(gè)例子:
public GestureHelper setPointCount(int pointCount){ if(pointCount<=0){ throw new SecurityException("====pointCount 請輸入大于零的值======="); } return GestureHelper.this; }
這是我代碼中的一個(gè)方法,要求是輸入的 pointCount 要大于零,當(dāng)輸入的值不滿足條件的時(shí)候,會(huì)拋出不安全異常,然后出現(xiàn)括號(hào)中提示,類似如下:
Android是一種基于Linux內(nèi)核的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由美國Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。
以上就是怎么在Android中自定義拋出異常,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。