java异常的问题:在catch块中抛出异常和直接抛出处理的区别

如题所述

如果你向上层进行抛出的话,那么上层就要对这个可能出现的异常进行处理,总不能一直抛到客户那里吧,那这就算失败了,因此捕捉异常是捕捉给开发人员看得,方便与调试bug,捕捉异常的语句块会执行catch外面的后面的语句(有点绕),抛出则是直接给上一层进行处理了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-19
捕捉到异常可以记录日志,方便调试,,,,然后再把异常throw出去.让上层框架进行处理...追问

能具体些吗谢谢

第2个回答  2013-11-19
没听说过有什么区别。
你说的catch块是哪块?
try{
throw 111
}catch(Exception e){
throw 222
}

111当场捕获,222不当场捕获.追问

我指的是try{

}catch(Exception e){
throw 222
}和

public void demo()throws 222{
}
的区别

追答

throws只是表示这个方法有可能抛出异常,只是做个标记,提示上级代码要捕获
throw是直接抛出具体的异常类的实例。

都不是一个东西谈什么区别。一个是标记,一个是抛出异常。

追问

public void demo()throws {
throw 222 ;
}
不好意思,我想表达的是这个意思

相似回答