面向对象编程(基础)——5.异常

异常的概念

在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。
异常处理就是指程序在出现问题时依然可以正确的执行完。
Java是采用面向对象的方式来处理异常的。
处理过程:

  • 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。
  • 捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,知道找到相应的异常处理代码为止。

异常分类

异常对象都是派生于Throwable类的一个实例。如果Java中内置的异常类不能满足要求,用户可以创建自己的异常类。
在这里插入图片描述

  • Error类描述了Java运行时系统的内部错误和资源耗尽错误。Error是程序无法处理的错误,表示运行应用程序中较严重的错误。大多数错误与代码编写者执行操作无关,而表示代码运行时JVM出现的问题。Error表明系统JVM已经处于不可恢复的崩溃状态。我们不用管它。
  • Exception:这个层次结构分为两个分支,一个是RuntimeException,另一个是其他异常。由编程错误导致的异常属于RuntimeException,如果程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其他异常

异常处理方式

1. 捕获异常
捕获异常是通过3个关键字来实现的:try-catch-finally。用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来catch并处理它,最后一步是通过finally语句为异常处理提供一个统一的出口,finally所指定的代码都要被执行(catch语句可以有多条,finally语句最多只能有一条)

try{
	语句1;
	语句2;
}catch(Exception1 e){

}catch(Exception2 e){

}finally{

}

try-catch-finally语句块执行流程:
程序先执行可能发生异常的try语句块。如果try语句没有出现异常则执行完后跳至finally语句块执行;如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。catch语句块可以有多个,分别捕获不同类型的异常。catch语句块执行完后程序会继续执行finally语句块。finally语句是可选的,如果有的话,则不管是否发生异常,finally语句都会被执行。
2. 声明异常(throws子句)
在一些情况下,当前方法并不需要处理发生的异常,而是向上传递给调用它的方法处理,这时就需要用到throws子句。

public static void readFile(String fileName) throws FileNotFoundException,      IOException {

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值