抛出异常的方法,该方法调用另一个抛出不同异常的方法(java)
TreeCenter是一个带有方法的接口,包括maximum。在MapClass中,我试图使用EmptyTreeClass的maximum来编写maximumKey,它返回对象映射中最大的键。但是,这两种方法会引发两种不同的异常。如果maximimum捕获到异常,则树保持不变。尽管知道我需要使用maximum,但我还是有点困惑如何编写maximumKey。我需要在方法中捕获这两个异常吗抛出异常的方法,该方法调用另一个抛出不同异常的方法(java),java,exception,map,tree,try-catch,Java,Exception,Map,Tree,Try Catch,TreeCenter是一个带有方法的接口,包括maximum。在MapClass中,我试图使用EmptyTreeClass的maximum来编写maximumKey,它返回对象映射中最大的键。但是,这两种方法会引发两种不同的异常。如果maximimum捕获到异常,则树保持不变。尽管知道我需要使用maximum,但我还是有点困惑如何编写maximumKey。我需要在方法中捕获这两个异常吗 public class UnemptyTreeClass<Key, Value> impleme
public class UnemptyTreeClass<Key, Value> implements TreeInter<Key, Value> {
private Key root;
private Value value;
private Tree<Key, Value> left, right;
public Key maximum() throws EmptyTreeException {
try {
return right.max();
} catch (EmptyTreeException e) {
return root;
}
}
您尚未在MapClass中声明root,因此无法编译以下行:
return root;
为什么在类UnemptyTreeClass in方法maximum中捕获exp并抛出相同的异常?现在,您的程序将只使用catch块。它不会将exp抛出方法。您必须捕获所有异常或将其抛出。你决定投哪一个。您还可以将它们聚合为一个异常。你能写得更具体些你想做什么吗?我想帮助你。
public class MapClass<Key, Value> {
Tree<Key,Value> instance= EmptyTree.getInstance();
public Key maximumKey() throws NoSuchElementException{
if (instance==EmptyTree.getInstance())
throw new NoSuchElementException();
try {
return instance.maximum();
} catch (EmptyTreeException e) {
return root; //error here
}
return root;