函数fun1抛了异常,函数fun2调用了fun1没有try catch也没有指出throws 怎么没报错

zhongyj2004 2009-11-13 08:23:10
比如
fun1 throws UserException
{
}

fun2 ()
{
fun1();
}

异常不是要么捕捉,要么再次throws吗
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果异常都是往外抛的话,那异常还有存在的意义么?

底层可以往外抛,但是调用者应该捕获异常,根本不同的异常进行不同的处理,以增强程序的健壮性。
taolei 2009-11-15
  • 打赏
  • 举报
回复
没有捕获就继续向外抛异常,即使该方法没有声明抛出的异常。

对于非RuntimeException和Error的异常必需捕获或显式声明抛出,只是Java语言上的规范。运行时环境(jvm)并没有对此做检查。有可能产生一个非RuntimeException的Exception的异常,而这个异常是没有被声明捕获或抛出。
junyun414 2009-11-14
  • 打赏
  • 举报
回复
UserException应该就是这个是个运行时异常。
beipanjiyi 2009-11-14
  • 打赏
  • 举报
回复
如果有jdbc的exception,你是编译不过去的
SolaWing 2009-11-14
  • 打赏
  • 举报
回复
反正必需要捕捉或抛出时编译器会提醒的,没报错就可以不管
ch379612148 2009-11-13
  • 打赏
  • 举报
回复
只要可能抛出的异常不是RuntimeException或其子类,都要try...catch或throws
zhongyj2004 2009-11-13
  • 打赏
  • 举报
回复
还真是继承自RuntimeException的,如果我在fun2中页可能抛出JDBC数据库操作错误,我必须要在fun2后面加上throws Exception吗
ch379612148 2009-11-13
  • 打赏
  • 举报
回复
UserException 如果是一个RuntimeException,则不需要抛出或捕获,若是检测异常,
则必须捕获或抛出。
所有继承RuntimeException都是非检测异常,其他的都是检测异常
SolaWing 2009-11-13
  • 打赏
  • 举报
回复
可能你的那个异常类是继承自RuntimeException的

以下是API上查到的:

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。

可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧