Java 通过创建自定义异常来处理RuntimeException
自定义RuntimeException类不是自定义异常类的实例。但RuntimeException是异常的实例。为什么 我为我的项目创建了两个异常类:Java 通过创建自定义异常来处理RuntimeException,java,exception-handling,custom-error-handling,Java,Exception Handling,Custom Error Handling,自定义RuntimeException类不是自定义异常类的实例。但RuntimeException是异常的实例。为什么 我为我的项目创建了两个异常类: public class ABCRuntimeException extends RuntimeException { //Functions... } public class ABCException extends Exception { //Functions... } 现在,我尝试如下处理这些异常: try{
public class ABCRuntimeException extends RuntimeException {
//Functions...
}
public class ABCException extends Exception {
//Functions...
}
现在,我尝试如下处理这些异常:
try{
//Code which throw ABCRuntimeException
} catch(Exception e) {
if(e instanceof ABCException) {
System.out.println("Is instance of ABCException");
} else if(e instanceof Exception) {
System.out.println("Is instance of Exception");
}
}
输出是异常的实例。为什么ABCRuntimeException不是ABCEException的实例
以及如何处理这种异常情况,以便我可以应用ABCRuntimeException和ABCEException的通用逻辑,而无需将OR运算符置于if条件下?
为什么ABCRuntimeException
不是abceexception
的实例
因为你没有这样定义它
public class ABCRuntimeException extends RuntimeException
public class ABCException extends Exception
以及如何处理这种异常情况,以便我可以应用公共
ABCRuntimeException和ABCEEXCEPTION的逻辑,不带put或
操作员处于if状态
在这种情况下,如果您的异常仅作为超类型共享
异常
,|
。(如果您不关心抛出的其他类型的异常,也可以捕获异常。)在java中扩展多个类的异常是可能的。如果您从ABCException和其他父异常扩展它,这应该会起作用。谢谢@Sotirios Delimanolis。如果ABCException,则需要进行哪些更改才能生成ABCRuntimeException实例?@abhendrasing您必须将ABCRuntimeException
作为ABCException
的子类,但这样它就不会是运行时异常。