浅谈异常

 

异常

 

一.何谓异常

程序运行时可能会出现地一些错误,例如试图打开一个根本不存在地文件,异常处理将会改变程序的流程控制过程,让程序对错误进行处理。

在这里,我们引入Throwable这个java系统自带的类,它由两个重要的子类。分别时Exception(异常)和Errow(错误),其区别为:前者能被系统处理,而后者不行。

 

二.try-catch语句

try语句的具体内容为可能发生异常的语句,一旦try部分抛出异常对象,或调用含有异常对象的方法时,try部分会立刻结束执行,跳转到对应的catch语句,对于catch语句来说,各个

参数都为Exception的某个子类,且各个catch语句的父类不能相同

三.自定义异常(以下为五星级重点内容)※※※※※

try-catch语句中try的语句中是用来判断是否有由异常类所创建对象的抛出,一旦有,那么catch语句中的参数类型为某个异常类,于是就会进行catch语句体内的内容。

但是什么叫抛出异常类所创建的对象呢

你看哈

就是用throws和throw这两个关键字

throws

throws关键字是在声明方法时使用,例如:void speakLoudly (int a)throws Exception {} 其中Exception是java自带的异常类,是我们所有异常的父类,当我们调用speakLoudly中的方法时

因为我们使用了throws关键字,系统会自动判断我们的操作是否发生了异常,也就是说它是自动的(当try的语句体内有speakLoudly的方法时,如果有异常,会自动抛出Exception的对象,也就是

异常类的对象)。

需要注意的时,抛出异常对象和catch语句是紧密相关的,不要分开来理解,正是由于try语句需要得到一个异常对象,而throw和throws会抛出一个异常对象,我们才可能有catch语句中所对于的处理方法。

throw

好了,在理解了这个关键点之后,我们又有了一个问题,如果我们想要自己抛出一个对象呢(也就是说自己控制,在什么状况下抛出一个异常对象),我们就要使用throw关键字了,它使用在

speakLoudly这个方法体内也就是{}之中,由于我们是要自己抛出异常对象,所以我们throw后是一个使用new关键字所创建后的实例对象,而不能是一个抽象的异常类。

例如: void speakLoudly (int a)throws Exception {

   if(a>0){

    throw new Exception(); //不能是Exception,这里我们需要的是一个由异常类所创建的对象,而不是一个类

}

并且,throw不能单独使用,必须与throws与try,catch语句同时使用

至此,我们对throws,throw,以及try和catch语句已经理解的比较透彻了,但还有需要注意的一点,如果要自己新创建一个异常类,我们必须把这个异常类作为Exception的子类

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值