如何在 java 中抛出 SystemException?
How to throw SystemException in java?
看到很多人这样写:
try {
//something
}
catch (IOException e){
throw new SystemException("IO Error", e);
}
我收到 "Cannot instantiate the type SystemException"
错误,似乎 SystemException 是一个抽象的 class,我怎样才能抛出它?
是的,它是一个抽象class,这意味着构造SystemException
类型的对象没有意义。建议使用更有意义的异常类型。
您在代码中提到了 IOException
。这意味着与 I/O 操作相关的异常,捕手可以相应地采取行动(可能是特殊的日志级别,一些 I/O 清理等)。
在您的具体情况下,我认为您应该将其更改为:
try {
//something
}
catch (IOException e) {
// log exception info and other context information here
// e.g. e.printStackTrace();
// just rethrowing the exception (call stack is still there)
throw e;
}
P.S。相当离题,但来自 .NET 世界,我发现 C#
中的 throw ex;
与 Java
.
之间的 subtle difference
看到很多人这样写:
try {
//something
}
catch (IOException e){
throw new SystemException("IO Error", e);
}
我收到 "Cannot instantiate the type SystemException"
错误,似乎 SystemException 是一个抽象的 class,我怎样才能抛出它?
是的,它是一个抽象class,这意味着构造SystemException
类型的对象没有意义。建议使用更有意义的异常类型。
您在代码中提到了 IOException
。这意味着与 I/O 操作相关的异常,捕手可以相应地采取行动(可能是特殊的日志级别,一些 I/O 清理等)。
在您的具体情况下,我认为您应该将其更改为:
try {
//something
}
catch (IOException e) {
// log exception info and other context information here
// e.g. e.printStackTrace();
// just rethrowing the exception (call stack is still there)
throw e;
}
P.S。相当离题,但来自 .NET 世界,我发现 C#
中的 throw ex;
与 Java
.