如果您需要区分不同类型的异常,只需创建 2 个不同的异常,可能类似于:
public class ProduktException extends Exception
{
public ProduktException(String msg){
//null
}
}
然后有:
public class ProduktNotDeletedException extends ProduktException
{
....
}
和
public class ProduktNotCreatedException extends ProduktException
{
....
}
然后你可以抓住一个或另一个,或两者兼而有之。
try {
...
} catch(ProduktNotDeletedException e1) {
e1.toString();
} catch(ProduktNotCreatedException e2) {
e2.toString();
}
编辑:
对于一个班级,我的意思是:
public class ProduktException extends Exception {
boolean notDeleted;
boolean notCreated;
public ProduktException(String msg){
super(msg);
}
public boolean isNotDeleted() {
return(notDeleted);
}
public boolean isNotCreated() {
return(notCreated);
}
public static void throwProduktNotCreatedException() throws ProduktException {
ProduktException e = new ProduktException("Cannot be created!");
e.notCreated = true;
throw e;
}
public static void throwProduktNotDeletedException () throws ProduktException {
ProduktException e = new ProduktException("Cannot be deleted!");
e.notDeleted = true;
throw e;
}
}
然后在您的尝试/捕获中:
try {
...
} catch(ProduktException e) {
e.toString();
if(e.isNotCreated()) {
// do something
}
if(e.isNotDeleted()) {
// do something
}
}