异常

来源:互联网 发布:网络有利还是有害 编辑:程序博客网 时间:2024/05/16 07:48

概念:

对于程序执行时出现的意外情况,在Java中被称为异常(Exception),出现异常时进行的相关处理,称为异常处理。

Java中使用一些专门的类来描述不同的异常情况,这些类成为异常类。所有异常类组成了Java的异常类继承树体系。

常见的异常类:

Exception 异常继承树的根类

RuntimeException 运行时异常

ArithmeticException 算术错误异常(例子:除数为0)

illegalArgumentException 方法接收到非法参数异常

NullpointerException 空引用异常

ClassNotFoundException 不能加载所需的类异常

NumberFormatException 数值转化格式异常(如字符串转float)

IoException I/O异常的根类

FileNotFoundException 找不到文件异常

EOFException 文件结束异常

InterruptedException 线程中断异常


Java异常的处理机制:

可以使Java语言编程程序更稳定。

Java程序在执行过程中如果出现异常,会自动实例化异常类对象,该异常对象将被自动提交给JVM,当JVM接收到

异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,这一过程称为捕获异常。

如果JVM找不到可以捕获异常的代码,则Java程序将异常退出。


Java中使用trycatch关键字捕获异常,格式如下:

try{    //代码块(可能出现异常的代码)} catch(异常类型1  exception){    //对异常进行处理的代码块} catch (异常类型2  exception){     //对异常进行处理的代码块} finally{     //无论是否有异常,始终都会被执行}<span style="white-space:pre"></span>只要有try catch语句,就会判断是否有finally<优先执行>
捕获异常的顺序:

1.尽量把最可能出现的异常类放在最上面;

2.把exception放在最后面,防止异常没被捕获。


捕获异常的过程:

a.当有异常发生时,代码控制流程跳转到捕获异常执行catch中的代码块,执行完后继续执行catch代码块后的代码,

b.当没有异常发生时,不会执行catch中的代码块。

c.一段代码可能会引发多种类型的异常,当引发异常时,会按顺序来查看每个catch的异常类型,并只执行第一个与

   异常类型匹配的catch中的代码块,其他的catch中的代码块将不会执行。

throw关键字和throws关键字<抛出异常>

throw用于在代码中抛出异常,格式如下:

throw new 异常类;


    throws用于在方法中抛出所有异常,而它本身不捕获异常。这些异常将被抛给方法的调用者。调用者需在方法中

捕获异常,如果不捕获则必须在方法中使用throws继续将异常抛出,直到异常被捕获处理。格式如下:

返回值类型 方法名(方法参数)throws 异常类1,异常类2...{

方法体;

}


异常分类:非受检和受检异常

非受检异常:

指编辑器不要求强制处理的异常。一般是因程序员代码编写方式不当导致的。RuntimeException 及其子类都属于非受检异常。

受检异常:

编译器要求必须强制处理的异常,即程序运行时由于外界因素导致的异常。如:

ClassNotFoundException没有找到具有指定名称类的异常

IoException 操作文件时发生的异常

SQLException 操作数据库时发生的异常












0 0
原创粉丝点击