แก้ไขข้อผิดพลาด
ใน 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);
}
}
}