修正錯誤
在 Java 世界中,Error 代表嚴重的問題。有時它們來自我們無法控制的環境因素;有時則是因為我們寫了不良的程式碼而觸發 Error。在本練習中,你會先觀察,接著修正一個永遠不會結束、最終導致 Error(特別是 StackOverflowError)的應用程式。親眼看到 Error,能幫助你未來辨識它們。與例外(exception)不同,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);
}
}
}