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