如果我的类不变量无效,我想抛出运行时异常。由于这是一个编程错误(类似于 NullPointerException),客户端不应捕获该异常。
异常类应该声明为私有的还是公共的(或其他)?
class Foo
{
// ...
private static class InvariantsViolated
{
// ...
}
}
是否有关于自定义运行时异常和可见性的指南?
如果我的类不变量无效,我想抛出运行时异常。由于这是一个编程错误(类似于 NullPointerException),客户端不应捕获该异常。
异常类应该声明为私有的还是公共的(或其他)?
class Foo
{
// ...
private static class InvariantsViolated
{
// ...
}
}
是否有关于自定义运行时异常和可见性的指南?
您可以考虑使用现有异常,除非您希望以不同的方式捕获此异常。如果预计不会被捕获,我认为不需要自定义异常。您可以重复使用的一些例外情况
如果您想要自定义异常,您可以考虑扩展这些异常,或使用扩展这些异常的异常之一。
我相信,为了做throw
任何事情,该对象必须实现Throwable
接口,这意味着它必须是 anError
或 an Exception
。由于您不希望您的客户永远捕获该事件,因此您可能应该使用Error
. 从Error
文档中:
Error 是 Throwable 的子类,表示合理的应用程序不应尝试捕获的严重问题。
这样你就可以避免一些程序员倾向于使用的可怕Exception
的包罗万象 - 大多数时候这些程序员甚至根本没有考虑捕捉一个Error
......