java - 如何在java中的自定义异常类中添加条件
问题描述
我有一个类,我在几个地方调用一个自定义类来处理异常。
public class PackageFailedException extends Exception {
public PackageFailedException(String msg) {
super(msg)
}
}
如果变量为真,我需要添加一个条件,然后忽略异常。有没有办法在一个地方做到这一点?例如在我的自定义类中?
提前致谢!
解决方案
您可以简单地将标志添加到您的异常中。
public class PackageFailedException extends Exception {
private final boolean minorProblem;
public PackageFailedException(String msg, boolean minorProblem) {
super(msg);
this.minorProblem = minorProblem;
}
public boolean isFlag() {
return this.flag;
}
}
然后您可以简单地调用isMinorProblem()
并决定是否忽略它。这里的假设是你可以在它被抛出时传递它。
但是,如果标志指示了一个完全不同的错误情况,您可能希望完全考虑一个不同的Exception
类,如果它是一个更特殊的情况,可能会扩展它。PackageFailedException
public class MinorPackageFailedException extends PackageFailedException {
public MinorPackageFailedException(String msg) {
super(msg);
}
}
然后在您的代码中:
try {
try {
doThePackageThing();
} catch (MinorPackageFailedException ex) {
//todo: you might want to log it somewhere, but we can continue
}
continueWithTheRestOfTheStuff();
} catch (PackageFailedException ex) {
//todo: this is more serious, we skip the continueWithTheRestOfTheStuff();
}