异常

概念:

对于程序执行时出现的意外情况,在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值