Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)
1、常見的java運(yùn)行時(shí)異常有哪些
了解非運(yùn)行時(shí)異常看這里:什么是java中的異常?
常見的運(yùn)行時(shí)異常看這里:常見的運(yùn)行時(shí)異常有哪些
我們所說的常見異常是jdk或者其他常用第三方j(luò)ar中的異常,出現(xiàn)頻次很高的異常。常見的非運(yùn)行時(shí)異常(即檢查異常,checked exception)包括:
- 操作數(shù)據(jù)庫異常:SQLException
- 輸入輸出異常:IOException
- 文件未找到異常:FileNotFoundException
- 反射操作異常:ReflectiveOperationException
-
類未找到異常: ClassNotFoundException
-
方法未找到異常:NoSuchMethodException
- 字段未找到異常:NoSuchFieldException
- 非法訪問權(quán)限異常:IllegalAccessException
- 實(shí)例化異常:InstantiationException
-
不支持克隆異常:CloneNotSupportedException
-
被中止異常:InterruptedException
2、什么情況下會(huì)拋出這些異常
如何拋出異常看這里:java如何拋出異常
1.java.lang.SQLException
該異常的解釋是:sql異常。?
sql語句異常種類十分多,通常都是sql語句、數(shù)據(jù)庫執(zhí)行錯(cuò)誤導(dǎo)致,常見的表現(xiàn)有:
- invalid column name 無效列名
- table or view does not exist 表或者視圖不存在
- cannot insert NULL into () 不能將空值插入
- 缺少表達(dá)式
- SQL 命令未正確結(jié)束
在操作數(shù)據(jù)庫時(shí)需要考慮全面,盡量避免該異常。
2.java.lang.IOException
該異常的解釋是:輸入輸出異常。?
該異常種類也十分多(擁有很多子類),尤其對(duì)文件的操作,以及Android開發(fā)。常見的表現(xiàn)有:
- FileNotFoundException 文件找不到。
- InvalidPropertiesFormatException 輸入內(nèi)容不符合屬性集的正確 XML 文檔類型。
3.java.lang.FileNotFoundException
該異常的解釋是:文件不存在異常。該異常繼承于 IOException。?
這個(gè)異常通常是獲取文件時(shí),文件路徑或文件名稱錯(cuò)誤導(dǎo)致的。
4.java.lang.ReflectiveOperationException
該異常的解釋是:反射操作相關(guān)的異常。?
由于反射的特殊性,類、方法、屬性均使用String作為名稱進(jìn)行操作,對(duì)于該類異常一定要十分注意。?
了解反射看這里:什么是Java中的反射
5.java.lang.ClassNotFoundException
該異常的解釋是:指定的類不存在。該異常繼承于ReflectiveOperationException。?
這個(gè)異常通常是在使用反射時(shí),或者服務(wù)端引入jar包時(shí)拋出。?
使用反射時(shí),根據(jù)類名(字符串)獲取Class時(shí),包、類名有誤會(huì)造成該異常。
6.java.lang.NoSuchMethodException
該異常的解釋是:指定的方法不存在。該異常繼承于ReflectiveOperationException。?
這個(gè)異常通常是在使用反射時(shí)拋出。?
使用反射時(shí),根據(jù)方法名(字符串)調(diào)用Method時(shí),方法名有誤會(huì)造成該異常。
7.java.lang.NoSuchFieldException
該異常的解釋是:指定的字段不存在。該異常繼承于ReflectiveOperationException。?
這個(gè)異常通常是在使用反射時(shí)拋出。?
使用反射時(shí),根據(jù)字段名(字符串)獲取、操作Field時(shí),字段名有誤會(huì)造成該異常。
8.java.lang.IllegalAccessException
該異常的解釋是:沒有訪問權(quán)限。?
當(dāng)應(yīng)用程序要調(diào)用一個(gè)類,但當(dāng)前的方法即沒有對(duì)該類的訪問權(quán)限便會(huì)出現(xiàn)這個(gè)異常。?
最常見的地方即在使用反射調(diào)用private方法/屬性時(shí)會(huì)拋出該異常,將private方法/屬性共有化public即可。?
想了解public和privite看這里:public、privite、protected有什么區(qū)別
9.java.lang.InstantiationException
該異常的解釋是:實(shí)例化異常。該異常繼承于ReflectiveOperationException。?
當(dāng)試圖通過newInstance()方法創(chuàng)建某個(gè)類的實(shí)例,而該類是一個(gè)抽象類或接口時(shí),拋出該異常。
10.java.lang.CloneNotSupportedException
該異常的解釋是:不支持克隆異常。該異常繼承于 ReflectiveOperationException。?
當(dāng)沒有實(shí)現(xiàn)Cloneable接口或者不支持克隆方法時(shí),調(diào)用其clone()方法則拋出該異常。
11.java.lang.InterruptedException
該異常的解釋是:被中止異常。?
當(dāng)某個(gè)線程處于長(zhǎng)時(shí)間的等待、休眠或其他暫停狀態(tài),而此時(shí)其他的線程通過Thread的interrupt方法終止該線程時(shí)拋出該異常。
原文地址:http://blog.csdn.net/ooppookid/article/details/51132413
總結(jié)
以上是生活随笔為你收集整理的Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python开发基础-day1
- 下一篇: PowerDesigner 中的name