可以将函数本地类作为异常抛出。这是好还是不好?
我的目的是解释异常类类型的异常上下文。
class A {
void method1() throws IOException {
class Method1IOException extends IOException {
}
throw new Method1IOException();
}
void method2() throws IOException{
class Method2IOException extends IOException{
}
throw new Method2IOException();
}
}
答案 0 :(得分:2)
假设此处的方法声明中extends
是throws
的拼写错误。
您不能在该范围内抛出Exception
未知,这将是您方法的本地范围(在这种情况下,与您的类A
的实例相对)。
因此,您的本地Exception
扩展RuntimeException
或您的throws
子句必须抛出一般Exception
(或Throwable
)。
无论如何,我不推荐这种做法,除非你永远不会重复使用本地Exception
- 甚至那时......
上下文应该在消息中以编程方式表示,并在堆栈跟踪中自动表示,但在这种情况下,它只会给堆栈跟踪添加一些噪声。