ในฐานะโปรแกรมเมอร์คุณรู้ข้อผิดพลาดของการโอเวอร์โฟลว์ของสแต็กอย่างแน่นอนเนื่องจากการเรียกซ้ำที่ชัดเจน แต่มีวิธีที่แปลกและผิดปกติหลายอย่างที่จะทำให้ภาษาโปรดของคุณแตกออกจากข้อผิดพลาดนั้น
วัตถุประสงค์:
- ต้องทำให้เกิดการโอเวอร์โฟลว์สแต็กซึ่งสามารถมองเห็นได้อย่างชัดเจนบนเอาต์พุตข้อผิดพลาด
- ไม่อนุญาตให้ใช้การเรียกซ้ำที่ชัดเจน
ตัวอย่างของโปรแกรมที่ไม่ถูกต้อง:
// Invalid, direct obvious recursion.
methodA(){ methodA(); }
// Invalid, indirect, but obvious recursion.
methodA(){ methodB(); }
methodB(){ methodA(); }
วิธีการที่สร้างสรรค์มากที่สุดจะดีที่สุดที่เป็นอย่างนี้ความนิยมประกวด คือหลีกเลี่ยงคำตอบที่ชัดเจนน่าเบื่อเช่นนี้:
throw new StackOverflowError(); // Valid, but very boring and downvote-deserving.
แม้ว่าฉันจะยอมรับคำตอบแล้วการเพิ่มคำตอบก็ยังไม่เป็นไร :)