最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義拋出異常的方法詳解

 更新時(shí)間:2019年06月04日 11:35:25   作者:奔跑的佩恩  
這篇文章主要給大家介紹了關(guān)于Android自定義拋出異常的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

在android開(kāi)發(fā)過(guò)程中,我們經(jīng)常遇到異常的問(wèn)題,崩潰拋出異常的時(shí)候,是非常令人煩悶的。但是異常有一個(gè)好處,使得app能在編譯的時(shí)候給我們提供一些bug信息,有時(shí)可能比較模糊,有時(shí)可能很精準(zhǔn),甚至提示報(bào)錯(cuò)行?;谶@一點(diǎn),今天我們就來(lái)講講android中的異常吧。

今天要講的內(nèi)容:

  • throw 和 throws
  • 異常類型
  • 仿寫異常及其好處

一. 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開(kāi)發(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è)常見(jiàn)子類。

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ù)組或集合的操作過(guò)程中

2.4 java.lang.IllegalArgumentException

方法參數(shù)錯(cuò)誤

2.5 java.lang.IllegalAccessException

沒(méi)有訪問(wèn)權(quán)限,一般是類的權(quán)限訪問(wèn)出問(wè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ù)庫(kù)異常

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 請(qǐng)輸入大于零的值=======");
  }
  return GestureHelper.this;
 }

這是我代碼中的一個(gè)方法,要求是輸入的 pointCount 要大于零,當(dāng)輸入的值不滿足條件的時(shí)候,會(huì)拋出不安全異常,然后出現(xiàn)括號(hào)中提示,類似如下:

這樣的話,仿寫異常的好處立見(jiàn)分曉了,就是當(dāng)我們?cè)趯懸粋€(gè)工具類,傳入?yún)?shù)不符合條件的話,在運(yùn)行期就能幫我們檢測(cè)自己的代碼中是否有不規(guī)則的東西,能幫我們檢測(cè)代碼的質(zhì)量。

所以,這無(wú)疑是極好的!

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Android實(shí)現(xiàn)USB掃碼槍獲取掃描內(nèi)容

    Android實(shí)現(xiàn)USB掃碼槍獲取掃描內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)USB掃碼槍獲取掃描內(nèi)容,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解Android Activity之間切換傳遞數(shù)據(jù)的方法

    詳解Android Activity之間切換傳遞數(shù)據(jù)的方法

    這篇文章主要介紹了詳解Android Activity之間切換傳遞數(shù)據(jù)的方法 的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Retrofit網(wǎng)絡(luò)請(qǐng)求和響應(yīng)處理重點(diǎn)分析講解

    Retrofit網(wǎng)絡(luò)請(qǐng)求和響應(yīng)處理重點(diǎn)分析講解

    這篇文章主要介紹了Retrofit網(wǎng)絡(luò)請(qǐng)求和響應(yīng)處理重點(diǎn)分析,在使用?Retrofit發(fā)起網(wǎng)絡(luò)請(qǐng)求時(shí),我們可以通過(guò)定義一個(gè)接口并使用Retrofit的注解來(lái)描述這個(gè)接口中的請(qǐng)求,Retrofit會(huì)自動(dòng)生成一個(gè)實(shí)現(xiàn)該接口的代理對(duì)象
    2023-03-03
  • Android 中使用RadioGroup和Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能

    Android 中使用RadioGroup和Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能

    這篇文章主要介紹了Android 中使用RadioGroup+Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能,整體文章大概分為兩部分介紹,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-06-06
  • Android中RecyclerView實(shí)現(xiàn)分頁(yè)滾動(dòng)的方法詳解

    Android中RecyclerView實(shí)現(xiàn)分頁(yè)滾動(dòng)的方法詳解

    RecyclerView實(shí)現(xiàn)滾動(dòng)相信對(duì)大家來(lái)說(shuō)都不陌生,但是本文主要給大家介紹了利用Android中RecyclerView實(shí)現(xiàn)分頁(yè)滾動(dòng)的思路和方法,可以實(shí)現(xiàn)翻頁(yè)功能,一次翻一頁(yè),也可以實(shí)現(xiàn)翻至某一頁(yè)功能。文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • Android實(shí)現(xiàn)代碼畫虛線邊框背景效果

    Android實(shí)現(xiàn)代碼畫虛線邊框背景效果

    可能之前遇到這樣的需求大家都會(huì)想到用圖片背景來(lái)解決,下面這篇文章將給大家介紹Android如何利用代碼畫虛線邊框背景的效果,有需要的朋友們可以參考借鑒,下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • Android跑馬燈MarqueeView源碼解析

    Android跑馬燈MarqueeView源碼解析

    這篇文章主要為大家詳細(xì)介紹了Android跑馬燈MarqueeView源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android中從圖庫(kù)中選取圖片實(shí)例詳解

    Android中從圖庫(kù)中選取圖片實(shí)例詳解

    這篇文章主要介紹了Android中從圖庫(kù)中選取圖片實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 調(diào)用startService會(huì)拋出IllegalStateException異常解決

    調(diào)用startService會(huì)拋出IllegalStateException異常解決

    這篇文章主要為大家介紹了調(diào)用startService會(huì)拋出IllegalStateException異常解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Flutter音樂(lè)播放插件audioplayers使用步驟詳解

    Flutter音樂(lè)播放插件audioplayers使用步驟詳解

    audioplayers是一個(gè)可以支持同時(shí)播放多個(gè)音頻文件的Flutter的插件,可以播放多個(gè)同時(shí)的音頻文件,這篇文章主要介紹了audioplayers的使用步驟,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05

最新評(píng)論

宁城县| 龙里县| 定州市| 宝清县| 高碑店市| 天等县| 同心县| 桂平市| 东辽县| 钦州市| 乌恰县| 永修县| 安顺市| 霍州市| 四会市| 温泉县| 正定县| 桐城市| 本溪| 东源县| 策勒县| 崇文区| 黄石市| 福泉市| 独山县| 丰台区| 苗栗县| 兴国县| 乐昌市| 鄂温| 中阳县| 承德市| 昔阳县| 辽宁省| 樟树市| 西昌市| 镇坪县| 乐平市| 安岳县| 淮滨县| 浑源县|