【黑马程序员】说一说我对java异常体制中throws和throw的理解

    本人java初学者,最近在复习java异常体制时,在网上看到许多同学关于throws和throw这两个关键字不理解,在这里我来说说我的看法,为大家的学习提供一点微薄之力。

一、throws关键字

首先,我们从这个单词就可以看出来,这是个复数形式的词,那么意味着它表示的肯定是多个异常的处理,那么为什么会产生多个异常呢?原因在于我在写一个方法时,我的方法内部调用了java中的一些已经存在的方法,这些方法在使用时可能会产生一些问题,比如下图,我在我的Test方法中使用到了FIleInputStream的构造方法,结果显示有异常,为什么呢?因为这个C盘根目录下可能根本就没有temp.txt这个文件,会产生异常!所以它需要你自己trycatch来捕获这个异常。

或者!你也可以使用throws这个关键字来抛给JVM,让它自己处理,我们不需要管这个异常,并且你也可以抛出多个方法可能存在的异常 这就是为什么它叫做throws的原因!

相信从这里大家应该能够真正理解了throws这个关键字的用法,其实在这里大家也就会自然而然的明白throw是用来干嘛的了,使用throws是因为调用这个方法时,最开始写这个方法的时候就抛出了异常,所以我需要处理,那么异常是如何被抛出的呢?那么这里就使用到了throw关键字。

二、throw关键字

上面已经提到了为什么使用throw,其实很简单,我在仔细思考写了一个方法之后,想到可能这个方法可能有些地方是不能使用的,比如你给我传进来的参数不能为零,但是你怎么防止别人不会传进来这个零参数呢?那么就需要new出一个自己定义的Exception(这里可能会需要自定义异常)并且将其throw出,那么同理,既然这已经就是一个异常了,你当然需要将这个方法trycatch,也可以在方法上将其throws!!,那么当别人使用你这个方法时!编译器就会提示这里有异常!你需要捕获!!那么就是使用throws来捕获!这就是throw的用法!

 

总结:最后提一点,使用throws关键字来处理异常其实就是不对异常处理,交给JVM,那么当另一个程序使用此方法时,同样也可以将其throws抛出,但是并不建议这种方法,最好是将其trycatch处理,这样可以更好的增强代码的健壮性。

以上就是我对于throws和throw的些许理解,谈不上深入研究,只为帮助与那些像我一样的java初学者更好的学习和理解,如有错误,请积极指出,本人不胜感激。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值