抛出异常的Java方法

时间:2014-11-12 09:33:45

标签: java exception-handling

我有一个java方法,它有效地抛出多个未经检查的异常。我的问题是:我是否需要声明它以抛出所有异常,或者如果我仅声明throws Exception会有任何问题吗?

方法1:

public void myMethod() throws Exception1,Exception2,Exception3,Exception4,Exception5
{}

而不是方法1,我可以这样声明吗?

public void myMethod() throws Exception
{}

4 个答案:

答案 0 :(得分:1)

是的,您可以,但理想情况下,人们会选择特定类型的Exception,以便您知道代码块所具有的“异常”行为类型。异常是超类 - 其他的是子类。如果您有未经检查的异常,即您的代码执行的行为可以归类为“未经检查”的异常行为,则可以使用Exceptions类。但是否则你需要上面提到的Checked个(可能不是全部)。

如果您不了解不同类型的例外情况,请尝试阅读 - https://docs.oracle.com/javase/tutorial/essential/exceptions/

这将解释不同的例外情况以及如何在您的应用程序中使用它们:)

P.S。对于未经检查的异常,在方法签名中使用throws需要 NOT - 但使用它可能不会造成任何伤害 - 至少你让人们知道你有“An “这个代码可能抛出的异常:) [我很高兴受到批评]

答案 1 :(得分:1)

是的,你可以定义。但是,方法调用者将丢失有关抛出的异常的一些信息。最佳做法是抛出特定的异常并专门处理它们。

答案 2 :(得分:0)

你总是可以抛出root异常。如果你的Exception1,Exception2,,Exception3,Exception4,Exception5都在遗产树的某处扩展了相同的异常,你可以抛出这个基本异常。

请注意,异常可能有意义,即显示可能出错的地方(并提供处理它的提示)。如果其他开发人员必须处理您的方法,那就特别重要了。

答案 3 :(得分:0)

如果异常来自您控制中的其他功能区域,我会处理它们(通过记录,回滚,清理资源等)并将它们包装在我自己的(Java: checked vs unchecked exception explanation)中并抛出。