我为我的任务实现了一个AVL树。我将TestAVLFrom.java导入到名为“Assignment 2”的项目中。当我尝试运行我的教授为该课程编写的测试用例时,我收到此错误消息:
当我尝试通过调试器运行测试用例时,我收到“找不到源”错误:
我尝试使用谷歌搜索问题并阅读有关此类错误的stackoverflow上的其他一些帖子,并且共识与类路径有关。但在阅读了很多帖子后,我仍然无法理解人们在谈论什么。
以下是测试用例的代码:
import java.util.HashSet;
public class TestAVLFrom
{
public static class Fail extends RuntimeException {
/**
*
*/
public Fail() { super(); }
public Fail(String msg) { super(msg); }
}
public static interface Test {
public void test();
}
public static void main(String[] args) {
Test[] suite = {
new Test0(), new Test1(), new Test2(), new Test3(), new Test4(),
new Test5(), new Test6(), new Test7(), new Test8(), new Test9(),
new Test10(), new Test11(), new Test12(), new Test13()
};
if (args.length == 0) {
for (int i = 0; i < suite.length; i++) {
System.out.println("running test " + i);
suite[i].test(); //Line 30: Error here
}
System.out.println("finished");
} else {
int count = 0;
for (int i = 0; i < suite.length; i++) {
System.out.print("test " + i + ": ");
System.out.flush();
try {
suite[i].test();
System.out.println("pass");
count++;
} catch (Exception e) {
System.out.println("fail");
}
}
System.out.println("total: " + count + "/" + suite.length);
}
}
// empty tree
public static class Test0 implements Test {
public void test() {
AVLFrom<String> s = new AVLFrom<String>();
if (s.find("a")) { throw new Fail(); }
try { s.from("a", 0); throw new Fail(); } catch (NotFound e) {} //Line 55: Error here
}
}
EDITED:删除了很多代码,并突出显示了上图中的例外情况。
答案 0 :(得分:1)
第55行有一个抛出Fail
异常的声明:
throw new Fail();
也许缺少一个条件,例如:
if (s.from("a", 0))
throw new Fail();
如果没有,只需删除throw
,因为它始终执行并始终无法通过测试。除非当然有NotFound
例外。