java第六章-异常处理

第六章

什么是异常处理

在java语言的开发过程中,将程序执行中发生的不正常值称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)

Exception
空指针访问
试图读取不存在的文件
网络链接中断

java.lang.Throwable
|…Error:错误,程序中不进行处理
|…Exception:异常,要求在编写程序时,就要考虑到这些异常的处理。
|..编译时异常,在编译期间出现的异常(执行java。exec命令时,出现异常)
|…运行时异常,在运行期间出现的异常(执行java。exec是命令时出现异常)
|当执行一个程序时,如果出现异常,那么异常之后的代码就不能再执行!

运行时异常:
①数据下标越界的异常
int[] i=int[10];
Ssytem.out.println(i[10]);
System.out.prinltn(i[-10]);
②算术异常
int i=10;
System.out.println(i/0);
③数据转换类型异常
Object obj=new Date();
String str=(String)obj;
④空指针异常
Person pp=new Person();
p=null;
System.out.println(p.toString());
class person{
}

编译时出现异常

异常的处理
指的是exception的异常
java提供的异常处理是抓抛模型
1.“抛”当我们执行代码时,一旦出现异常,就会在异常的代码块生成一个对应的异常类型的对象。

一旦抛出此异常的对象,那么程序就终止执行
此异常类的对象抛给方法的调用者。
2.“抓”抓住上一个抛出来的异常的对象,如何抓?即为异常处理的方式。
注:try内声明的变量,类似于局部变量,出了1.try{}语句,就不能被调用
2.finally是可选的
3.catch语句内部是对异常对象的处理。
getMessage(); printStackTrace();
4.可以有多个catc语句,try中抛出的异常类对象从上往下,去匹配catch中的异常类的类型,一旦满足就执行catch中的代码,执行完,就跳出其后的多余的catch语句。
5.如果异常处理了,那么其后的代码继续正常执行
6.若catch中多个异常类型是“并列”关系,孰上孰下度可以、
若catch中多个异常类型是“包含”关系,需将子类放在父类的上面。进行处理否则报错!
7.finally存放的是一定会被执行的代码不管try,catch是否有仍有异常未被处理,以及是否有return语句
8.try与catch是可以相互嵌套的
三对于运行异常来说,可以不显示的进行处理
对于编译异常来说,必须要处理。
java提供了俩种方式来处理一个异常类的对象。
处理方式一
try{
//可能出现异常的代码
}catch(Exception e1){
//处理的方式一
}catch(Exception e1){
//处理的方式二
}
finally{
//一定要执行的代码
}

再谈finally

如何自定义一个异常类
1.自定义的异常类继承现有类的异常类
2.提供一个序列好,提供重载的构造器

异常处理二
在方法的声明处 显示的抛出异常对象的数据类型
格式,如 public static void method2 throws FileNotFoundException,IOException{}
当在此方法内部出现异常时候,会出现一个异常的对象,抛给方法的调用者。
异常的对象可以逐层向上抛,直到main中,当然在向上抛的过程中,可以通过try-catch-finally进行处理。

java的异常类,抛类模型
1.抓:异常的处理,有俩种方式(try-catch-finally throws+异常的类型)
2.抛:一旦执行过程中,出现异常,会抛出一个异常类的对象,(自动抛出vs手动抛出)(throw+异常的类型)

既可是现成的异常类,也可以是自己创建的。

抛异常的重写方法
//子类重写的父类的方法,其抛出的异常类型只能是被重写的方法的异常类的子类或异常类型一样。

异常处理5个关键字try catch finally throw throws

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值