是否应该将方法中定义的本地类抛出为异常?

时间:2015-04-22 15:09:26

标签: java exception exception-handling

可以将函数本地类作为异常抛出。这是好还是不好?

我的目的是解释异常类类型的异常上下文。

class A {
    void method1() throws IOException {
        class Method1IOException extends IOException {
        }
        throw new Method1IOException();
    }

    void method2() throws IOException{
        class Method2IOException extends IOException{
        }
        throw new Method2IOException();
    }
}

1 个答案:

答案 0 :(得分:2)

假设此处的方法声明中extendsthrows的拼写错误。

您不能在该范围内抛出Exception未知,这将是您方法的本地范围(在这种情况下,与您的类A的实例相对)。

因此,您的本地Exception扩展RuntimeException或您的throws子句必须抛出一般Exception(或Throwable)。

无论如何,我不推荐这种做法,除非你永远不会重复使用本地Exception - 甚至那时......

上下文应该在消息中以编程方式表示,并在堆栈跟踪中自动表示,但在这种情况下,它只会给堆栈跟踪添加一些噪声。