Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)

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方法终止该线程时抛出该异常。

原文地址:http://blog.csdn.net/ooppookid/article/details/51132413

时间: 2024-10-26 23:22:02

Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)的相关文章

Java千百问_04异常处理(008)_java中常见的错误有哪些

java中常见的错误有哪些 想了解异常看这里:什么是java中的异常  常见的运行时异常看这里:常见的Java异常有哪些(运行时)  常见的非运行时异常看这里:常见的java异常有哪些(非运行时) Java中除了异常Exception之外,还有一大类错误,即ERROR,我们常见的ERROR如下: 1.java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况.  原因: 对系统所访问外部资源,未执行关闭操作,导致外部资源大

Java千百问_04异常处理(006)_常见的Java异常有哪些(运行时)

1.常见的java运行时异常有哪些 了解运行时异常看这里:什么是java中的异常 常见的非运行时异常看这里:常见的非运行时异常有哪些 我们所说的常见异常是指jdk或者其他常用第三方jar中,出现频次很高的异常.常见的运行时异常(RuntimeException)包括: 空指针异常类:NullPointerException 数组下标越界异常:ArrayIndexOutOfBoundsException 数组负长度异常:NegativeArraySizeException 数组存储异常:Array

Java千百问_04异常处理(005)_如何自定义异常

1.如何定义自己的异常 Java支持自己创建的异常.了解异常看这里:什么是java中的异常 方法如下: 1.所有的异常必须是Throwable的子类. 2.如果想写一个检查异常,需要扩展Exception类. 3.如果想编写一个运行时异常,则需要扩展RuntimeException类. 4.异常类与任何其他类一样,可以包含字段和方法. 我们可以定义如下自己的异常处理类: [java] view plain copy   class MyException extends Exception{  

Java千百问_04异常处理(001)_什么是java中的异常

1.java异常是什么 java在执行期间产生了某些问题,导致执行中断,这一问题就称为异常. 不同的原因都可能产生异常,包括以下内容:==用户输入无效数据.==需要打开的文件不存在.==网络连接已丢失.==JVM已经耗尽内存.==将null当作某种对象进行操作. 2.异常都分为哪些 要了解在Java中如何异常处理工作,需要了解三类异常:检查异常(checked exception) 检查异常通常是用户错误,程序员并不可预见的问题.例如,如果一个文件被打开,但该文件无法找到,则会出现异常.这些异常

Java千百问_05面向对象(003)_java中抽象概念如何体现的

点击进入_更多_Java千百问 1.抽象是什么 抽象,和具体对立,定义了事物的性质,事物的性质会随着抽象概念的改变而改变. 2.java中的抽象类是什么 Java中最直接抽象概念的应用就是抽象类和接口,这里我们看一下抽象类. 抽象类和普通类一样,是一个模版.相比普通类,抽象类不具备实例化对象的能力.抽象类也可以定义属性和方法,比之普通类,它还可以定义没有实现的方法,即抽象方法.  通常会用一个具体类(子类)继承抽象类(父类),实现抽象类中的抽象方法.父类包含子类的集合的通用功能,但父类本身过于抽

Java千百问_03基本语法(002)_java都有哪些关键字

java都有哪些关键字 首先我们来看看什么是关键字,关键字的含义. 1.java关键字是什么意思 关键字是电脑语言里事先定义的,有特别意义的特殊标识符,又叫保留字. Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等等,Java规定关键字不能用作自定义标识符(包括变量名.方法名.类名.包名和参数等等). 2.java都有哪些关键字 目前共有50个Java关键字,如下.其中,"const"和"goto"这两个关键字在Java

Java千百问_02基本使用(003)_不使用IDE如何打jar包

不使用IDE如何打jar包 1.什么是jar包 jar包,最直白的感受就是后缀是.jar的一种压缩文件,它是以zip文件格式为基础的压缩包. 与zip文件不同的是,jar文件不仅用于压缩和发布,而且还用于部署和封装库.组件和插件程序. jar包可以被类似Jvm这样的工具直接使用,通过MANIFEST.部署描述符等特殊文件,来指示工具处理特定的jar. jar包大体分为2种,可执行jar包,不可执行jar包. 目前大多数的jar包都是不可被执行的,这类jar包就是提供给其他应用显现某些特定功能的.

Java千百问_01基本概念(002)_Java都有哪些版本

Java都有那些版本 Java最初由sun公司出品,2009年被orcale公司(即甲骨文)收购,它的版本体系分为两个纬度,纵向和横向. 纵向的版本即为我们常说的Jdk版本,通过近20年的时间,从1996年正式发布1.0版本,发展到2014年的8.0版本. 横向的版本即为我们所说的Java体系,从Java 2.0开始有所区分. 1.什么是Java体系 Java SE(J2SE,Java2 Platform Standard Edition,标准版) Java EE(J2EE,Java 2 Pla

Java千百问_05面向对象(010)_java中重载和覆盖有什么关系

1.什么是重载 Java的重载,简单说,就是方法有同样的名称,但是参数不相同.这样的同名不同参数的方法之间,互相称之为重载方法.  需要注意的是:  1. 方法名相同.  2. 参数不同,这里是说对应位置的参数类型至少有一个不同,当然List和List都是List,算作相同.  3. 返回值可以不同,可以相同. 例子:  "`  public class Test{  public void a() {  System.out.println("a()");  }; publ