在java中,异常捕捉中,啥时候方法头就要加上throws,有时却又不要呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中,异常捕捉中,啥时候方法头就要加上throws,有时却又不要呢?相关的知识,希望对你有一定的参考价值。
不用加的时候是因为你在方法里面去catch了这个异常,也就是说你的方法里面有try...catch(),而如果方法里面没有捕获的话就这能抛到方法外去捕获,所以就在方法头上加throws。 参考技术AJava的异常分为“运行时异常”和“非运行时异常”
举个例子
public void func1() throws Exception
throw new Exception("XXX");
public void func2()
throw new IllegalArgumentException("XXX");
func1抛出的异常是非运行时异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过,所以要加throws
func2抛出的异常是运行异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理,编译的时候不加throws也不会报错
有两种处理方式:
1、抛出异常,交给调用者处理
2、方法里自己将这个异常try catch,捕获异常,并进行异常处理
第一种:抛出异常,交给调用者处理时,就需要在方法头上追加throws 来抛出可能发生的所有异常
而第二种,使用try catch方法,将可能发生异常的代码包裹,进行异常处理,是不用在方法头上抛出异常的
try{
可能出现异常的代码...
}catch(Exception ex){
异常处理...
}finally{
不管是否出现异常,都将会执行,一般用于关闭释放资源..
}本回答被提问者采纳
java 中getBounds啥作用
作用是获取位置,举个例子如果想要一行文字移动,可以每次向右移动两个像素,这时候就要获取当前的位置,可以将当前位置的x增加2,然后重复,就能实现移动的效果。 参考技术A 获取位置
以上是关于在java中,异常捕捉中,啥时候方法头就要加上throws,有时却又不要呢?的主要内容,如果未能解决你的问题,请参考以下文章
Java中的异常捕捉try为什么要尽量使用具体标准的异常,为什么不要直接使用ExceptionRuntimeExceptionErrorThrowable,避免在try catch中进行业务编码
Java中的异常捕捉try为什么要尽量使用具体标准的异常,为什么不要直接使用ExceptionRuntimeExceptionErrorThrowable,避免在try catch中进行业务编码