且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

finally最终执行块和throw与throws

更新时间:2022-09-20 23:35:26

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

finally最终执行块和throw与throws

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



throw

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


finally最终执行块和throw与throws


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

 

 

 

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

finally最终执行块和throw与throws

  


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

finally最终执行块和throw与throws


throws

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

finally最终执行块和throw与throws


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

finally最终执行块和throw与throws




方法抛出异常:

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

 

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

finally最终执行块和throw与throws


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




本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1974351,如需转载请自行联系原作者