開始使用免費開始

修正錯誤

在 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);
		}
	}
}
編輯並執行程式碼