เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แก้ไขข้อผิดพลาด

ใน Java นั้น Error ถือเป็นปัญหาร้ายแรง บางครั้งเกิดจากปัจจัยแวดล้อมที่อยู่นอกเหนือการควบคุม แต่บางครั้งก็เกิดจากโค้ดที่เขียนผิดพลาด ในแบบฝึกหัดนี้ คุณจะได้สังเกตและแก้ไขแอปพลิเคชันที่ทำงานวนซ้ำไม่สิ้นสุดจนเกิด Error (โดยเฉพาะ StackOverflowError) การได้เห็น Error จริงจะช่วยให้จดจำลักษณะของมันได้ในอนาคต ทั้งนี้ Error แตกต่างจาก Exception ตรงที่ไม่สามารถจัดการด้วย try-catch หรือ throws ได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • รันโค้ดตัวอย่างตามที่ให้มา โดยที่ค่า cycles ไม่เคยเปลี่ยนแปลง ซึ่งทำให้เกิด infinite loop และทำให้แอปพลิเคชันล้มเหลวพร้อมกับสร้าง StackOverflowError
  • หลังจากเห็น StackOverflowError แล้ว ให้เพิ่ม + 1 ต่อท้าย cycles ในการเรียก doWork เพื่อให้ค่า cycles เปลี่ยนแปลงและหยุด infinite loop
  • รันโค้ดอีกครั้งเพื่อดูว่าแอปพลิเคชันทำงานได้สำเร็จและหลีกเลี่ยง 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);
		}
	}
}
แก้ไขและรันโค้ด