常見異常

異常的繼承結(jié)構(gòu):

基類為Throwable返弹,Error和Exception繼承Throwable抽碌,RuntimeException和IOException等繼承Exception翰铡,具體的RuntimeException繼承RuntimeException。

Error和RuntimeException及其子類成為未檢查異常(unchecked)已添,其它異常成為已檢查異常(checked)拦坠。

1、 SQLException:操作數(shù)據(jù)庫異常類萨惑。

問題:當(dāng)Java應(yīng)用程序與數(shù)據(jù)庫進(jìn)行溝通時(shí)如果產(chǎn)生了錯(cuò)誤捐康,就會(huì)觸發(fā)這個(gè)類。同時(shí)會(huì)將數(shù)據(jù)庫的錯(cuò)誤信息通過這個(gè)類顯示給用戶庸蔼。當(dāng)用戶插入數(shù)據(jù)的時(shí)候解总,如果這個(gè)字段的值跟現(xiàn)有的紀(jì)錄重復(fù)了,違反了數(shù)據(jù)庫的唯一性約束姐仅,此時(shí)數(shù)據(jù)庫就會(huì)跑出一個(gè)異常信息花枫。這個(gè)信息一般用戶可能看不到,因?yàn)槠浒l(fā)生在數(shù)據(jù)庫層面的掏膏。此時(shí)這個(gè)操作數(shù)據(jù)庫異常類就會(huì)捕捉到數(shù)據(jù)庫的這個(gè)異常信息劳翰,并將這個(gè)異常信息傳遞到前臺(tái)。如此的話馒疹,前臺(tái)用戶就可以根據(jù)這個(gè)異常信息來分析發(fā)生錯(cuò)誤的原因佳簸。

解決方案:檢查插入的數(shù)據(jù)是否重復(fù)。
2颖变、 ClassCastException:數(shù)據(jù)類型轉(zhuǎn)換異常生均。

問題:在Java應(yīng)用程序中,有時(shí)候需要對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換腥刹。這個(gè)轉(zhuǎn)換包括顯示的轉(zhuǎn)換與隱式的轉(zhuǎn)換马胧。不過無論怎么轉(zhuǎn)換,都必須要符合一個(gè)前提的條件衔峰,即數(shù)據(jù)類型的兼容性漓雅。在數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換之前,就保證數(shù)據(jù)類型的兼容性朽色。如此的話邻吞,就不容易造成數(shù)據(jù)類型的轉(zhuǎn)換異常。如在只允許數(shù)值類型的字段中葫男,可以設(shè)置不允許用戶輸入數(shù)值以外的字符抱冷。

解決方案:注意相應(yīng)的組件在初始化的時(shí)候,是否相對(duì)應(yīng)梢褐。
3旺遮、 NumberFormatException:字符串轉(zhuǎn)換為數(shù)字類型時(shí)拋出的異常赵讯。

在數(shù)據(jù)類型轉(zhuǎn)換過程中,如果是字符型轉(zhuǎn)換為數(shù)字型過程中出現(xiàn)的問題耿眉,對(duì)于這個(gè)異常在Java程序中采用了一個(gè)獨(dú)立的異常边翼,即NumberFormatException.如現(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)行處理庸论。
解決方案:檢查數(shù)據(jù)是否正確铛纬。

  1. java.lang.NullPointerException
    (1).如果使用第三包的jar包厌均,jar包中有錯(cuò)誤

(2).沒有實(shí)例化組件

(3).沒有把Adapter和值綁定;

(4).當(dāng)頁面中某個(gè)組件賦值為null時(shí)activity會(huì)出現(xiàn)錯(cuò)誤告唆,程序崩潰后其他頁面的數(shù)據(jù)就會(huì)被重新初始化

(5).用Intent傳值時(shí)棺弊,獲取的key不存在

(6).沒有賦初始值

  1. java.lang.ClassNotFoundException  異常的解釋是"指定的類不存在"。
  2. java.lang.ArithmeticException  這個(gè)異常的解釋是"數(shù)學(xué)運(yùn)算異常"擒悬,比如程序中出現(xiàn)了除以零這樣的運(yùn)算就會(huì)出這樣的異常镊屎。
  3. java.lang.ArrayIndexOutOfBoundsException
      異常的解釋是"數(shù)組下標(biāo)越界",現(xiàn)在程序中大多都有對(duì)數(shù)組的操作茄螃,因此在調(diào)用數(shù)組的時(shí)候一定要認(rèn)真檢查缝驳,看自己調(diào)用的下標(biāo)是不是超出了數(shù)組的范圍,一般來說归苍,顯示(即直接用常數(shù)當(dāng)下標(biāo))調(diào)用不太容易出這樣的錯(cuò)用狱,但隱式(即用變量表示下標(biāo))調(diào)用就經(jīng)常出錯(cuò)了,還有一種情況拼弃,是程序中定義的數(shù)組的長(zhǎng)度是通過某些特定方法決定的夏伊,不是事先聲明的,這個(gè)時(shí)候吻氧,最好先查看一下數(shù)組的length溺忧,以免出現(xiàn)這個(gè)異常。
  4. java.lang.IllegalArgumentException

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

  1. java.lang.IllegalAccessException
      這個(gè)異常的解釋是"沒有訪問權(quán)限",當(dāng)應(yīng)用程序要調(diào)用一個(gè)類痛垛,但當(dāng)前的方法即沒有對(duì)該類的訪問權(quán)限便會(huì)出現(xiàn)這個(gè)異常草慧。對(duì)程序中用了Package的情況下要注意這個(gè)異常

10.安全異常:產(chǎn)生的原因是由于當(dāng)前的設(shè)備不支持當(dāng)前程序,這個(gè)是由于機(jī)型產(chǎn)生的問題匙头,我們應(yīng)該換一個(gè)設(shè)備進(jìn)行測(cè)試漫谷,檢測(cè)當(dāng)前程序存在什么樣的異常;另一種原因是獲取激活的網(wǎng)絡(luò)信息實(shí)體類蹂析,需要添加權(quán)限舔示,否則會(huì)出現(xiàn)此異常

解決辦法:在配置文件中,添加android_permission_Access_NetWork_State的權(quán)限

  1. RejectExcuteException:一個(gè)異步任務(wù)只能執(zhí)行一次识窿,否則會(huì)報(bào)異常

一個(gè)線程最多能執(zhí)行5個(gè)線程,超出則等待脑融,否則會(huì)報(bào)拒絕執(zhí)行的異常

解決辦法:使用子線程+handler來代替AsyncTask喻频,或者一個(gè)線程中少添加幾個(gè)異步操作。

  1. Out of memory:內(nèi)存溢出是存放的數(shù)據(jù)過多導(dǎo)致內(nèi)存不足的溢出事件

  2. Memory leak:內(nèi)存泄露是本應(yīng)該釋放的資源沒有充分得到釋放肘迎,就繼續(xù)添加數(shù)據(jù)導(dǎo)致內(nèi)存泄露事件甥温;

Java應(yīng)用程序中常見的異常類還有很多。如未找到相應(yīng)類異常妓布、不允許訪問某些類異常姻蚓、文件已經(jīng)結(jié)束異常、文件未找到異常匣沼、字段未找到異常等等狰挡。一般系統(tǒng)開發(fā)人員都可以根據(jù)這個(gè)異常名來判斷當(dāng)前異常的類型。

ArithmeticException(除數(shù)為0的異常), BufferOverflowException(緩沖區(qū)上溢異常), BufferUnderflowException(緩沖區(qū)下溢異常), IndexOutOfBoundsException(出界異常), NullPointerException(空指針異常), EmptyStackException(空棧異常), IllegalArgumentException(不合法的參數(shù)異常), NegativeArraySizeException, NoSuchElementException, SecurityException, SystemException, UndeclaredThrowableException

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末释涛,一起剝皮案震驚了整個(gè)濱河市加叁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唇撬,老刑警劉巖它匕,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異窖认,居然都是意外死亡豫柬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門扑浸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烧给,“玉大人,你說我怎么就攤上這事喝噪〈匆梗” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵仙逻,是天一觀的道長(zhǎng)驰吓。 經(jīng)常有香客問我涧尿,道長(zhǎng),這世上最難降的妖魔是什么檬贰? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任姑廉,我火速辦了婚禮,結(jié)果婚禮上翁涤,老公的妹妹穿的比我還像新娘桥言。我一直安慰自己,他們只是感情好葵礼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布号阿。 她就那樣靜靜地躺著,像睡著了一般鸳粉。 火紅的嫁衣襯著肌膚如雪扔涧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天届谈,我揣著相機(jī)與錄音枯夜,去河邊找鬼。 笑死艰山,一個(gè)胖子當(dāng)著我的面吹牛湖雹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曙搬,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼摔吏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了纵装?” 一聲冷哼從身側(cè)響起舔腾,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搂擦,沒想到半個(gè)月后稳诚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瀑踢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年扳还,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橱夭。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氨距,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棘劣,到底是詐尸還是另有隱情俏让,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站首昔,受9級(jí)特大地震影響寡喝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勒奇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一预鬓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赊颠,春花似錦格二、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痘括,卻和暖如春长窄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背远寸。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工抄淑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屠凶,地道東北人驰后。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像矗愧,于是被迫代替她去往敵國和親灶芝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載至:http://www.cnblogs.com/cvst/p/5822373.html Java Excep...
    小沙鷹168閱讀 1,897評(píng)論 0 3
  • Java Exception: 1唉韭、Error2夜涕、Runtime Exception 運(yùn)行時(shí)異常3、Excepti...
    java部落閱讀 589評(píng)論 0 1
  • 算術(shù)異常類:ArithmeticExecption 空指針異常類:NullPointerException 類型強(qiáng)...
    coexist閱讀 6,048評(píng)論 0 27
  • //算術(shù)異常 ArithmeticExecption //空指針異常類 NullPointerException ...
    jsy_hello閱讀 524評(píng)論 0 1
  • 距離老公被辭退已經(jīng)近一個(gè)月了,這段時(shí)間里住诸,陪著他一次又一次經(jīng)歷了滿懷希望驾胆,漫長(zhǎng)等待卻又無望的過程,有時(shí)候覺得真是種...
    嚴(yán)楉閱讀 224評(píng)論 0 0