finally最终执行块和throw与throws

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了finally最终执行块和throw与throws相关的知识,希望对你有一定的参考价值。

finally最终执行块:

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

技术分享

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



throw

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


技术分享


构建异常对象被throw抛出后就会进入到对应的异常陷阱里,执行陷阱里的代码。如果没有相对应的陷阱就会往外抛,直到抛到main方法外位为止。

 

 

 

  例如在封装属性里就可以用到throw,因为当经过判断条件为false就可以抛出一个异常来提示客户操作有问题。例如:

技术分享

 


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

技术分享


throws

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

技术分享


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

技术分享




方法抛出异常:

方法就是任务的封装,或者功能的封装,如果一旦出现问题,无论是参数合法性还是调用别的方法有异常,都必须反映出去,不可以处理后没有任何提示,没有任何提示的话用户也无法得知自己的操作是否是正确的。

 

throws可以抛出多个异常声明,只需要在异常之间用逗号隔开就可以了。例如:

技术分享


异常的抛出机制主要就是用于提醒客户的操作是否有问题,或者哪里的代码运行时出现了异常,所以异常陷阱里也必需要写有一些代码来提示用户,不能什么都不写,什么都不写出现错误了,也不知道是怎么回事,这就失去了异常处理的意义了。


本文出自 “12831981” 博客,请务必保留此出处http://12841981.blog.51cto.com/12831981/1974351

以上是关于finally最终执行块和throw与throws的主要内容,如果未能解决你的问题,请参考以下文章

JAVA语言如何进行异常处理,关键字throws,throw,try,catch,finally分别代表啥意义在try块中抛出异常吗

异常及throw与throws的介绍

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表啥意

Java面试题22 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

关于Java中try catch finally throw return的执行顺序问题

异常处理:是在 throw 之后最终执行吗?