异常处理


一、什么是异常

异常是在程序中导致程序中断运行的一种指令流。

二、处理异常

1.异常体系结构

异常指的是Exception , Exception类, 在Java中存在一个父类Throwable
Throwable存在两个子类:
1.Error:表示的是错误,是JVM发出的错误操作,只能尽量避免,无法用代码处理。
2.Exception:一般表示所有程序中的错误,所以一般在程序中将进行try…catch的处理。

2.处理格式语法

try{
	//可能发生异常的代码块
}catch{异常类型1 对象名1{
	//异常的处理操作
}catch{异常类型2 对象名2{
	//异常的处理操作
}...
finally{
	//异常的统一出口
}

try-catch-finally 中catch和finally可以省略其中一个,不能同时省略。
注意:格式上允许省略catch块, 但是发生异常时就不会捕获异常,所以开发中不会省略catch操作。


3.try…catch异常抛出处理

1、产生异常后,系统会自动产生一个异常类的实列化对象。
2.在try语句中发生的异常,会自动找对应异常类型的catch语句,则由catch语句进行处理,没有在catch语句中或者catch语句不能处理,则将异常抛出至main。
3.main未处理,则将异常抛出给JVM,JVM对异常信息进行响应,中断处理。


4.finally语句

finally语句作为异常的统一出口,不管是否产生了异常,都要执行此段代码
catch语句中如果执行return语句,finally仍然会执行;(除了外在因素,如电脑关机等使程序无法运行或通过如下代码退出 JVM:System.exit(0) )。
执行流程:

  1. 先计算返回值, 并将返回值存储起来, 等待返回
  2. 执行finally代码块
  3. 将之前存储的返回值, 返回出去;
    注意:
  4. 返回值是在finally运算之前就确定了,并且缓存了,不管finally对该值做任何的改变,返回的值都不会改变
  5. finally代码中不建议包含return,因为程序会在上述的流程中提前退出,也就是说返回的值不是try或catch中的值。

5.throws关键字

格式:
返回值 方法名称()throws Exception{
}
此关键字主要在方法的声明上使用,表示方法中不处理异常,而交给调用处处理。

6.throw关键字

throw关键字表示在程序中人为的抛出一个异常,从异常处理机制来看,所有的异常一旦产生之后,实际上抛出的就是一个异常类的实例化对象,那么此对象也可以由throw直接抛出。
代码: throw new Exception(" ") ;

7.RuntimeException和Exception的区别

注意观察如下方法的源码:
Integer类:

 public static int parseInt(String text)
		throws NumberFormatException

此方法抛出了异常, 但是使用时却不需要进行try-catch捕获处理
因为:NumberFormatException并不是Exception的直接子类,而是RuntimeException的子类,只要是RuntimeException的子类,则表示程序在操作的时候可以不必使用try…catch进行处理,如果有异常发生,则由JVM进行处理。当然,也可以通过try catch处理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值