Java Runtime Exception用于检查未检查的异常。子类JavaRunTimeException是公认的标准。您能否在不直接使用它的情况下解释子分类的原因?

try {
    int x = Integer.parseInt(args[0])/Integer.parseInt(args[0]);
} catch (RuntimeException e) {

}


推荐方法

public class ServiceFaultException extends RuntimeException {}

try {
    int x = Integer.parseInt(args[0])/Integer.parseInt(args[0]);
} catch (ServiceFaultException e) {

}


我想知道这项建议的原因。 ?

最佳答案

异常用于赋予未立即处理的错误某种意义。
子类化RuntimeException允许您赋予更多含义并区分几个RuntimeExceptions

例如,能够区分IllegalArgumentExceptionNumberFormatException都是有用的。

编辑:正如@Dyrborg所说,捕获RuntimeException也可能很危险,因为任何事情都可能在您不知情的情况下将其抛出。更好地只处理您控制的内容。

在旁边:
您可以告诉我“为什么不选中RuntimeException?”。
我通常在Exception对应于错误使用方法(例如非法参数)时使用。这意味着程序员可以确保避免的事情。当涉及到用户输入或不可靠的Internet连接时,RuntimeException更为合适,因为程序员必须处理这些错误情况。

关于java - 为什么使用Java Runtime-未经检查的异常需要子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22539525/

10-10 12:49