我不知道如何使用Eclipse来执行“java -ea -da:Derived AssertionCheck”。你能帮帮我吗?
谢谢!
课程在这里:
class Base {
public void foo() {
assert true; // ASSERT_BASE
}
}
class Derived extends Base {
public void foo() {
assert false; // ASSERT_DERIVED
}
}
class AssertionCheck {
public static void main(String []args) {
try {
Base base = new Base();
base.foo();
}
catch(Exception e) {
base = new Derived();
base.foo();
}
}
}
答案 0 :(得分:1)
https://stackoverflow.com/a/11415579/1791197让它像Priyank Doshi的节目一样只是只是" -ea"设置所有参数" -ea -da:Derived AssertionCheck"
答案 1 :(得分:0)
要运行,您需要移动Base base = new Base();在try语句之外,像这样:
class AssertionCheck {
public static void main(String []args) {
Base base = new Base();
try {
base.foo();
}
catch(Exception e) {
base = new Derived();
base.foo();
}
}
}
我不确定你要测试的是什么....在命令行上测试启用断言,或测试捕获Base类抛出的断言。
如果Base类具有" assert.false",但不在Derived类上,那么上面的catch语句将不会成功。断言会抛出错误而不是异常,因此您需要添加
catch (AssertionError er) {
base = new Derived();
base.foo():
}
通常,AssertionError不会在生产代码中使用或实现,因为它通常意味着代码中存在问题而不是无法正确处理。