java 抛出异常可以只写throws exception吗?有什么不好?

我们知道,java异常exception类是其他所有异常类的父类
那么可以只throws exception而不throws具体的类吗?

阅读 8.1k
4 个回答

可以是可以,抛具体的类是为了有区分度,能从名字上就让人感知到是哪块除了问题

你把方法定义成这样的话,用户会很恼火。当你用别人写的这样的方法的时候也会很恼火。本来我可以根据错误类型分别处理的,现在你都作为 Exception 一把丢,我怎么好处理,难道我还要用 if (e instanceOf IOException) {...} 来判断?

可以,不好。
可以的理由是 你这么写不会报错,代码可以运行。
不好的理由是 你破坏了代码的自述性和可读性,不利于维护和异常处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题