【问题标题】:Forcing all methods to throw Exception强制所有方法抛出异常
【发布时间】:2014-05-26 11:12:16
【问题描述】:

我在一个给定的类中有很多方法,这些方法是从不同的类中调用的。理想情况下,每个方法都应该抛出异常,以便从主类处理它们。

有没有办法强制所有方法在没有完成的情况下抛出异常?在下面的示例中,function2() 不会抛出异常。我想做的就是强迫它。

public void function1() throws Exception {
   // Some Actions
}

public void function2() {
   // Some Actions
}

【问题讨论】:

  • 呃...你为什么不能直接使用throw new RuntimeException();
  • 这没有意义;如果该方法需要抛出一个(检查的)异常,它将在其签名中指定它。应该没有必要强制它。
  • 仅仅因为function2的签名没有说明,并不意味着它不能抛出异常。
  • @Stultuske:它可以抛出一个unchecked异常,是的。
  • 勾选还是不勾选?在类周围包裹一个切面并将其扔到那里。

标签: java


【解决方案1】:

如 cmets 中所述,您仍然可以在不命名 ... method() throws Exception 的情况下抛出 unchecked 异常。

但是,如果要抛出已检查的异常,则必须实现一个接口:

interface Thrower {
    public void function1() throws Exception;
    public void function2() throws Exception;
}

class SomeClass implements Thrower {
    ...
}

虽然这不是最佳解决方案,但这是我想到的唯一解决方案。

不可能声明一个类的所有方法都必须抛出异常

【讨论】:

  • 虽然这个解决方案不适合我,但这澄清了我的问题。谢谢。
【解决方案2】:

理想情况下,每个方法都应该抛出异常,以便处理它们 来自主班

如果有从主类处理,我认为最好使用RuntimeException 或从RuntimeExeption 扩展的异常,这样您就不必担心throw exception,因为@987654324 @ 自动传播。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-17
    • 2011-02-04
    • 2016-12-15
    • 2017-02-10
    • 1970-01-01
    • 2015-11-15
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多