您的位置:首页 > 其它

finally最终执行块和throw与throws

2017-10-19 18:38 399 查看
finally最终执行块:
如果你在写try catch的时候需要一段代码不管出现错误或者不出现错误,都执行这段代码的话,就在最后面加上finally最终执行块,而且这个finally要写在最后面,并且一个try catch只能写一个finally,finally后面不可以再写catch。例如:




可以看到出现了异常进到了相对应的陷阱之后,这个finally依然会执行。适合用于写关闭资源的代码,因为finally无论如何都会执行,解决了以前try catch的bug。


throw:
throw用于抛出异常对象,这个异常可以是系统定义的,也可以是自己定义的。例如:






构建异常对象被throw抛出后就会进入到对应的异常陷阱里,执行陷阱里的代码。如果没有相对应的陷阱就会往外抛,直到抛到main方法外位为止。
例如在封装属性里就可以用到throw,因为当经过判断条件为false就可以抛出一个异常来提示客户操作有问题。例如:





这句throw后面是不可以再写代码的了,如果想在这之后执行一些代码可以使用try catch里的finally。例如:





throws: throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常),调用该方法时需要使用try catch处理这个异常或者继续抛出这个异常,不然就会直接报语法错误(继承于RuntimeException类的除外)。例如:





如果抛出的是RuntimeException或继承于这个类之下的异常就不会要求对异常进行处理。例如:




方法抛出异常:
方法就是任务的封装,或者功能的封装,如果一旦出现问题,无论是参数合法性还是调用别的方法有异常,都必须反映出去,不可以处理后没有任何提示,没有任何提示的话用户也无法得知自己的操作是否是正确的。 throws可以抛出多个异常声明,只需要在异常之间用逗号隔开就可以了。例如:



异常的抛出机制主要就是用于提醒客户的操作是否有问题,或者哪里的代码运行时出现了异常,所以异常陷阱里也必需要写有一些代码来提示用户,不能什么都不写,什么都不写出现错误了,也不知道是怎么回事,这就失去了异常处理的意义了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  throws throw finally
相关文章推荐