这更像是一个OO设计问题。
所以,我有一个UnsuportedLocaleException,它只会在应用程序的初始化阶段使用。我有两个选择:
我更喜欢第一个,但不确定这是否是正确的设计。
答案 0 :(得分:9)
对我来说似乎完全合理。 RuntimeException
是一个很好的基类,用于调用代码不应尝试“处理”的异常 - 即,当它们指示失败的类型时,可能意味着整个应用程序或(可能)对于服务器而言,请求应该被放弃。
答案 1 :(得分:2)
第一个很好。有many exceptions个子类RuntimeException
。
答案 2 :(得分:2)
这里有几点意见。
首先(经典)说在大多数情况下你应该使用检查异常。在这种情况下,方法必须将此异常声明为其签名的一部分或捕获它。该方法的优点是界面始终清晰,每层都关心其异常。但这种方法非常冗长。有时你的代码会变得更长,你必须使用几个try / catch语句而不是调用方法的coupe并编写一个if
。
其他方法是仅使用运行时异常。这种理念表明,您不必处理异常,因为您与它们无关。在这种情况下,所有异常都是运行时,并在一个中央模块中捕获和处理。例如,Spring框架使用这种方法。
所以答案就是你在发展什么。如果这是独立库,则使用已检查明确定义的异常。如果是应用程序或应用程序框架,则可以使用Spring之类的运行时异常。