14
กำลังจับ java.lang.OutOfMemoryError?
เอกสารสำหรับjava.lang.Errorพูดว่า: ข้อผิดพลาดเป็นคลาสย่อยของ Throwable ที่บ่งชี้ถึงปัญหาร้ายแรงที่แอปพลิเคชันที่สมเหตุสมผลไม่ควรพยายามจับ แต่ในฐานะjava.lang.Errorคลาสย่อยjava.lang.Throwableฉันสามารถจับ Throwable ประเภทนี้ได้ ฉันเข้าใจว่าเหตุใดจึงไม่ควรจับข้อยกเว้นแบบนี้ เท่าที่ฉันเข้าใจถ้าเราตัดสินใจที่จะจับมันตัวจัดการจับไม่ควรจัดสรรหน่วยความจำใด ๆ ด้วยตัวเอง มิฉะนั้นOutOfMemoryErrorจะถูกโยนอีกครั้ง ดังนั้นคำถามของฉันคือ: มีสถานการณ์ในโลกแห่งความเป็นจริงเมื่อจับได้java.lang.OutOfMemoryErrorอาจเป็นความคิดที่ดีหรือไม่? หากเราตัดสินใจที่จะจับjava.lang.OutOfMemoryErrorเราจะแน่ใจได้อย่างไรว่าตัวจัดการการจับไม่ได้จัดสรรหน่วยความจำใด ๆ ด้วยตัวเอง (เครื่องมือหรือแนวทางปฏิบัติที่ดีที่สุด)