Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过创建自定义异常来处理RuntimeException_Java_Exception Handling_Custom Error Handling - Fatal编程技术网

Java 通过创建自定义异常来处理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{

自定义RuntimeException类不是自定义异常类的实例。但RuntimeException是异常的实例。为什么

我为我的项目创建了两个异常类:

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
的子类,但这样它就不会是
运行时异常。