修复一个错误
在 Java 中,Error 表示严重问题。有时它们由我们无法控制的环境问题引起;也有时是我们写了不当的代码而触发了 Error。在本练习中,您将先观察、再修正一个永远不会终止并导致 Error(具体为 StackOverflowError)的应用程序。亲眼看到 Error 能帮助您在将来更快识别。与异常不同,错误无法通过 try-catch 或 throws 来处理。
本练习是课程的一部分
Java 的数据类型与异常
练习说明
- 直接运行示例代码,其中
cycles的值从不改变,导致调用出现无限循环,使应用程序失败并产生StackOverflowError。 - 看到
StackOverflowError后,在调用doWork时为cycles加上+ 1,让 cycles 的值发生变化,从而停止无限调用。 - 重新运行代码,您将看到应用程序成功运行,并避免出现
StackOverflowError。
交互式实操练习
通过完成这段示例代码来试试这个练习。
public class ErrorGeneration {
public static void main(String[] args) {
System.out.println("Started the work");
doWork(0);
System.out.println("Work complete");
}
public static void doWork(int cycles) {
if (cycles < 10) {
// Add +1 to cycles after running
doWork(cycles);
}
}
}