如何在Java中将未检查异常转换为已检查异常,反之亦然

如何在Java中将未检查异常转换为已检查异常,反之亦然,java,exception,Java,Exception,在Java中,如何将未检查的异常转换为已检查的异常,在Java中如何将未检查的异常转换为已检查的异常。您无法转换。相反,您必须包装到所需类型的新异常中,例如转换为未经检查的: throw new RuntimeException(checkedException); 或检查: throw new Exception(uncheckedException); (您可能需要选择更有意义的/特定的异常类型)您无法转换。相反,您必须包装到所需类型的新异常中,例如转换为未经检查的: throw new

在Java中,如何将未检查的异常转换为已检查的异常,在Java中如何将未检查的异常转换为已检查的异常

您无法转换。相反,您必须包装到所需类型的新异常中,例如转换为未经检查的:

throw new RuntimeException(checkedException);
或检查:

throw new Exception(uncheckedException);

(您可能需要选择更有意义的/特定的异常类型)

您无法转换。相反,您必须包装到所需类型的新异常中,例如转换为未经检查的:

throw new RuntimeException(checkedException);
或检查:

throw new Exception(uncheckedException);

(您可能希望选择更有意义的/特定的异常类型)

未检查的异常是
运行时异常的子类,未检查的异常不是。因此,要转换一个异常,您必须更改其继承性,然后修复编译器错误,因为您的新检查异常从未声明或捕获。

未检查的异常是
RuntimeException的子类,未检查的异常不是。因此,要转换一个异常,您必须更改其继承,然后修复编译器错误,因为您的新检查异常从未声明或捕获。

您无法转换它们。它们有不同的用途。调用方需要处理已检查的异常,而未检查的异常或运行时异常通常不会被明确处理。

您无法转换它们。它们有不同的用途。调用方需要处理已检查的异常,而未检查或运行时异常通常不会得到明确的处理。

假设您有两个异常类
ExceptionA
ExceptionB
;其中一个被选中,另一个被取消选中。您想将
例外a
转换为
例外b

假设
ExceptionB
有一个类似

public ExceptionB(Exception e) {
    super(e);
}
你可以这样做

catch (ExceptionA e) {
    throw new ExceptionB(e);
}

将一个异常类的对象包装到另一个异常类中。

假设您有两个异常类
ExceptionA
ExceptionB
;其中一个被选中,另一个被取消选中。您想将
例外a
转换为
例外b

假设
ExceptionB
有一个类似

public ExceptionB(Exception e) {
    super(e);
}
你可以这样做

catch (ExceptionA e) {
    throw new ExceptionB(e);
}

将一个异常类的对象包装到另一个异常类中。

Nice one,如果
checkedException
null
?发生了什么?当您“转换”checkedException时,它可能不是null。否则它将是NullpointerException,未选中。问题已解决;)(鸭子)如果捕捉到异常,它将不会为null。我假设上述内容将在catch()子句中使用,如果
checkedException
null
?发生了什么?当您“转换”checkedException时,它可能不是null。否则它将是NullpointerException,未选中。问题已解决;)(鸭子)如果捕捉到异常,它将不会为null。我假设上述内容将用于catch()子句中