Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)
2016-06-18 06:35
260 查看
点击进入_更多_Java千百问
常见的运行时异常看这里:常见的运行时异常有哪些
我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频次很高的异常。常见的非运行时异常(即检查异常,checked exception)包括:
操作数据库异常:SQLException
输入输出异常:IOException
文件未找到异常:FileNotFoundException
反射操作异常:ReflectiveOperationException
类未找到异常: ClassNotFoundException
方法未找到异常:NoSuchMethodException
字段未找到异常:NoSuchFieldException
非法访问权限异常:IllegalAccessException
实例化异常:InstantiationException
不支持克隆异常:CloneNotSupportedException
被中止异常:InterruptedException
sql语句异常种类十分多,通常都是sql语句、数据库执行错误导致,常见的表现有:
invalid column name 无效列名
table or view does not exist 表或者视图不存在
cannot insert NULL into () 不能将空值插入
缺少表达式
SQL 命令未正确结束
在操作数据库时需要考虑全面,尽量避免该异常。
该异常种类也十分多(拥有很多子类),尤其对文件的操作,以及android开发。常见的表现有:
FileNotFoundException 文件找不到。
InvalidPropertiesFormatException 输入内容不符合属性集的正确 XML 文档类型。
这个异常通常是获取文件时,文件路径或文件名称错误导致的。
由于反射的特殊性,类、方法、属性均使用String作为名称进行操作,对于该类异常一定要十分注意。
了解反射看这里:什么是java中的反射
这个异常通常是在使用反射时,或者服务端引入jar包时抛出。
使用反射时,根据类名(字符串)获取Class时,包、类名有误会造成该异常。
这个异常通常是在使用反射时抛出。
使用反射时,根据方法名(字符串)调用Method时,方法名有误会造成该异常。
这个异常通常是在使用反射时抛出。
使用反射时,根据字段名(字符串)获取、操作Field时,字段名有误会造成该异常。
当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。
最常见的地方即在使用反射调用private方法/属性时会抛出该异常,将private方法/属性共有化public即可。
想了解public和privite看这里:public、privite、protected有什么区别
当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。
当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。
当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
1、常见的java运行时异常有哪些
了解非运行时异常看这里:什么是java中的异常常见的运行时异常看这里:常见的运行时异常有哪些
我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频次很高的异常。常见的非运行时异常(即检查异常,checked exception)包括:
操作数据库异常:SQLException
输入输出异常:IOException
文件未找到异常:FileNotFoundException
反射操作异常:ReflectiveOperationException
类未找到异常: ClassNotFoundException
方法未找到异常:NoSuchMethodException
字段未找到异常:NoSuchFieldException
非法访问权限异常:IllegalAccessException
实例化异常:InstantiationException
不支持克隆异常:CloneNotSupportedException
被中止异常:InterruptedException
2、什么情况下会抛出这些异常
如何抛出异常看这里:java如何抛出异常1.java.lang.SQLException
该异常的解释是:sql异常。sql语句异常种类十分多,通常都是sql语句、数据库执行错误导致,常见的表现有:
invalid column name 无效列名
table or view does not exist 表或者视图不存在
cannot insert NULL into () 不能将空值插入
缺少表达式
SQL 命令未正确结束
在操作数据库时需要考虑全面,尽量避免该异常。
2.java.lang.IOException
该异常的解释是:输入输出异常。该异常种类也十分多(拥有很多子类),尤其对文件的操作,以及android开发。常见的表现有:
FileNotFoundException 文件找不到。
InvalidPropertiesFormatException 输入内容不符合属性集的正确 XML 文档类型。
3.java.lang.FileNotFoundException
该异常的解释是:文件不存在异常。该异常继承于 IOException。这个异常通常是获取文件时,文件路径或文件名称错误导致的。
4.java.lang.ReflectiveOperationException
该异常的解释是:反射操作相关的异常。由于反射的特殊性,类、方法、属性均使用String作为名称进行操作,对于该类异常一定要十分注意。
了解反射看这里:什么是java中的反射
5.java.lang.ClassNotFoundException
该异常的解释是:指定的类不存在。该异常继承于ReflectiveOperationException。这个异常通常是在使用反射时,或者服务端引入jar包时抛出。
使用反射时,根据类名(字符串)获取Class时,包、类名有误会造成该异常。
6.java.lang.NoSuchMethodException
该异常的解释是:指定的方法不存在。该异常继承于ReflectiveOperationException。这个异常通常是在使用反射时抛出。
使用反射时,根据方法名(字符串)调用Method时,方法名有误会造成该异常。
7.java.lang.NoSuchFieldException
该异常的解释是:指定的字段不存在。该异常继承于ReflectiveOperationException。这个异常通常是在使用反射时抛出。
使用反射时,根据字段名(字符串)获取、操作Field时,字段名有误会造成该异常。
8.java.lang.IllegalAccessException
该异常的解释是:没有访问权限。当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。
最常见的地方即在使用反射调用private方法/属性时会抛出该异常,将private方法/属性共有化public即可。
想了解public和privite看这里:public、privite、protected有什么区别
9.java.lang.InstantiationException
该异常的解释是:实例化异常。该异常继承于ReflectiveOperationException。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。
10.java.lang.CloneNotSupportedException
该异常的解释是:不支持克隆异常。该异常继承于 ReflectiveOperationException。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。
11.java.lang.InterruptedException
该异常的解释是:被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
相关文章推荐
- 使用Eclipse Installer安装Eclipse
- 简单的java代码在内存加载过程(详解)
- spring MVC学习笔记
- spring MVC学习笔记
- Eclipse+ADT+Android SDK 搭建安卓开发环境
- JAVA中的static关键字
- springSecurity集成cas
- 20145314郑凯杰 《Java程序设计》课程总结
- 框架 day56 BOS项目练习(activiti,历史数据操作,流程变量,任务组,监听器,网关,spring整合)
- (JAVA+TESTNG 二)Eclipse+TestNG搭建接口自动化测试框架
- java 常用习惯用法总结
- java并发编程实战笔记-死锁
- Set接口
- spring的三种主要的装配机制
- Spring快速上手
- 线程执行器
- Java并发(一)线程管理
- 线程同步机制(一)--Synchronized,Lock
- Java WebSocket生命周期
- Elasticsearch 2.3.3 手把手教你安装