在java中,异常捕捉中,什么时候方法头就要加上throws,有时却又不要呢?

 我来答
yjx759520
2017-04-25 · TA获得超过338个赞
知道小有建树答主
回答量:449
采纳率:66%
帮助的人:207万
展开全部
不用加的时候是因为你在方法里面去catch了这个异常,也就是说你的方法里面有try...catch(){},而如果方法里面没有捕获的话就这能抛到方法外去捕获,所以就在方法头上加throws。
百度网友df648a6
2019-06-18 · TA获得超过377个赞
知道小有建树答主
回答量:110
采纳率:50%
帮助的人:55.2万
展开全部

Java的异常分为“运行时异常”和“非运行时异常”

举个例子

public void func1() throws Exception{

throw new Exception("XXX");

}

public void func2() {

throw new IllegalArgumentException("XXX");

}

func1抛出的异常是非运行时异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过,所以要加throws

func2抛出的异常是运行异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理,编译的时候不加throws也不会报错

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangrenpan
2017-04-25 · 超过10用户采纳过TA的回答
知道答主
回答量:23
采纳率:100%
帮助的人:13.7万
展开全部
当方法里有异常时:
有两种处理方式:
1、抛出异常,交给调用者处理
2、方法里自己将这个异常try catch,捕获异常,并进行异常处理
第一种:抛出异常,交给调用者处理时,就需要在方法头上追加throws 来抛出可能发生的所有异常
而第二种,使用try catch方法,将可能发生异常的代码包裹,进行异常处理,是不用在方法头上抛出异常的
try{
可能出现异常的代码...

}catch(Exception ex){
异常处理...

}finally{
不管是否出现异常,都将会执行,一般用于关闭释放资源..

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式