异常(Exceptioin)

错误: 指的是可以预见的,编译可出现,并可以解决

异常: 指的是可预见的,潜在错误导致,如果不处理程序会执行不了

异常处理:(java提供抓抛模型)

异常中最大的类是Throwable(类)有两个子类:

A:Error (类)由于运行类不存在(不处理)

B:Exception(类)由程序本身抛出的错误

           1. 检查时异常

                      2. 运行时异常(非检查异常):

                       ①NullPointerException(空指针异常)

                       ②ArrayIndexOutOfBoundsException(数组下标越界)

                       ③ClassCastException(转换类型)

                      ④ ArithmeticException(算术异常)

捕获

处理

异常处理方式一

语法

try{
//可能出现异常的代码
}catch(Exception e1){
 //处理方式1;
}catch(Exception e2){
 //处理方式2;
}finally{//可写可不写,但是finally一旦写了,里面的代码就一定要运行
 //一定要执行的代码;
}

注意:

1.try内声明的变量,类似于局部变量,出了try{}语句就不能被调用了。

2.finally是可选的,可写可不写,但是finally一旦写了,里面的代码就一定要运行,一定要执行的代码;

3.catch语句内部是对异常对象的处理;e.getMessage(),是有返回值的; e.printStackTrace();此方法无返回值,就是输出

堆栈信息。

4.可以有多个catch语句,try中抛出的异常类的对象从上往下匹配catch中异常类的类型,一旦满足就执行catch{}中的代

码。执行完后就跳出其后的多条catch语句。

5.如果异常处理了,那么其后的代码继续执行

6.如catch中多个异常是“并列”关系,孰上孰下都可以。若catch中多个异常类型是“包含”关系,需要将子类放到父类的上

面,进行处理,否则编译报错。(也就是说先匹配小的再匹配大的,反之大的匹配到了还要小的做什么)

7.不管try,catch中是否仍有异常为被处理,finally中的代码都会被执行。(这里经常实用于数据库里,不管结果如何,必须释放空间)

8.try-catch是可以被嵌套使用的。

异常处理方式二:

在方法的声明处,显示的抛出该异常对象的类型(使用关键字throws

例:

public static void method()throws FileNotFoundException,IOException{}

 当在此方法内部出现异常的时候,会抛出一个异常类的对象,抛给方法的调用者。异常的对象可以逐层向上抛,直至

main方法中。当然在向上抛的过程中可以再通过try-catch-finally进行处理。


java的异常处理(抓抛模型)

:异常的处理,有二种方式:

1)  try-catch-finally 

2)  throws+异常类的对象

:一旦执行过程中出现异常,会抛出一个异常类的对象。

自动抛出

手动抛出            语法:throw new  异常();

注意:1. 在方法中手动的抛出异常的类型为RuntimeException,可以不显示的处理。如果是Exception,必需要显示的处理!  

2. 异常的处理有5个关键字:try、catch、finally,throw,throws     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值