学Java这么久,第一次调试断言。
收获:
1.在命令行中调试断言:使用 java -ea AssertTest的方式(刚开始没带-ea参数,以为程序有问题呢)
2.在Eclipse中调试断言:run as configuration->Arguments->VM arguments->输入“-ea”->run(相比之下,命令行下调试更方便一点)
代码:
package example;
//Fig. 11.8: AssertTest.java
//Checking with assert that a value is within range.
import java.util.Scanner;
public class AssertTest
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a number between 0 and 10: ");
int number = input.nextInt();
// assert that the value is >= 0 and <= 10
assert (number >= 0 && number <= 10) : "bad number: " + number;
System.out.printf("You entered %d%n", number);
}
} // end class AssertTest
运行结果:
1. Round 1
Enter a number between 0 and 10: 11
Exception in thread "main" java.lang.AssertionError: bad number: 11
at example.AssertTest.main(AssertTest.java:17)
Exception in thread "main" java.lang.AssertionError: bad number: 11
at example.AssertTest.main(AssertTest.java:17)
2. Round 2
Enter a number between 0 and 10: 10
You entered 10
You entered 10