如何覆盖 JAVA 中的异常 class 方法
How to Override a Exception class methods in JAVA
我在我的项目中使用私有 JAVA 库。在库 API 中,开发人员编写了一个自定义异常 class "ClassException",如果出现任何异常,他们将抛出此 class 异常对象。从某种角度来看,在我的项目中使用这个库时,我无法弄清楚异常是在哪里引发的。我在控制台上看到的是
ClassException raised inside a java class Demo
的私人图书馆。
我没有库的源代码可以按我的意愿更改。我只能看到 .class 文件。
类异常:
public class ClassException extends Exception {
private static final long serialVersionUID = 1L;
private ClassErrorStatus mErrorCode;
public ClassException(ClassErrorStatus pErrorCode) {
}
public ClassException(String pMessage, ClassErrorStatus pErrorCode) {
}
public ClassException(Throwable pCause, ClassErrorStatus pErrorCode) {
}
public ClassException(String pMessage, Throwable pCause, ClassErrorStatus pErrorCode) {
}
public ClassErrorStatus getErrorStatus() {
}
}
我如何重写此 class 方法,以便在任何地方抛出 ClassException 时它应该调用我的自定义 class 异常方法。反正有这样做吗?
喜欢throw new ClassException()
应该调用我自己的异常class方法。
试试这个
- 自己写
ClassException.java
- 编译生成
ClassException.class
文件
- 与原始
ClassException.class
文件交换
您可以使用与库相同的包创建一个 ClassException,并将其放在类路径之前(例如,以 _ 开头的 jar)。
但是,您将不会获得任何进一步的信息,因为现在将抛出异常。
您可以尝试反编译代码(如果许可证允许)并使用调试器逐步进行。
我在我的项目中使用私有 JAVA 库。在库 API 中,开发人员编写了一个自定义异常 class "ClassException",如果出现任何异常,他们将抛出此 class 异常对象。从某种角度来看,在我的项目中使用这个库时,我无法弄清楚异常是在哪里引发的。我在控制台上看到的是
ClassException raised inside a java class Demo
的私人图书馆。
我没有库的源代码可以按我的意愿更改。我只能看到 .class 文件。
类异常:
public class ClassException extends Exception {
private static final long serialVersionUID = 1L;
private ClassErrorStatus mErrorCode;
public ClassException(ClassErrorStatus pErrorCode) {
}
public ClassException(String pMessage, ClassErrorStatus pErrorCode) {
}
public ClassException(Throwable pCause, ClassErrorStatus pErrorCode) {
}
public ClassException(String pMessage, Throwable pCause, ClassErrorStatus pErrorCode) {
}
public ClassErrorStatus getErrorStatus() {
}
}
我如何重写此 class 方法,以便在任何地方抛出 ClassException 时它应该调用我的自定义 class 异常方法。反正有这样做吗?
喜欢throw new ClassException()
应该调用我自己的异常class方法。
试试这个
- 自己写
ClassException.java
- 编译生成
ClassException.class
文件 - 与原始
ClassException.class
文件交换
您可以使用与库相同的包创建一个 ClassException,并将其放在类路径之前(例如,以 _ 开头的 jar)。
但是,您将不会获得任何进一步的信息,因为现在将抛出异常。
您可以尝试反编译代码(如果许可证允许)并使用调试器逐步进行。