การจัดการข้อยกเว้นใน C ++ นั้น จำกัด ให้ลอง / โยน / จับ ไม่เหมือนกับ Object Pascal, Java, C # และ Python แม้ใน C ++ 11 finally
โครงสร้างจะไม่ถูกนำมาใช้
ฉันได้เห็นวรรณกรรม C ++ จำนวนมากที่พูดถึง "ข้อยกเว้นรหัสปลอดภัย" Lippman เขียนว่ารหัสความปลอดภัยยกเว้นเป็นหัวข้อที่มีความสำคัญ แต่ขั้นสูงและยากเกินกว่าขอบเขตของไพรเมอร์ของเขา - ซึ่งดูเหมือนว่าบอกเป็นนัยว่ารหัสความปลอดภัยไม่ได้เป็นพื้นฐานของ C ++ Herb Sutter อุทิศ 10 บทในหัวข้อในภาษา C ++ อันยอดเยี่ยมของเขา!
สำหรับฉันแล้วดูเหมือนว่าปัญหาต่าง ๆ ที่เกิดขึ้นเมื่อพยายามเขียน "รหัสที่ปลอดภัยยกเว้น" สามารถแก้ไขได้ค่อนข้างดีหากมีการใช้finally
งานโครงสร้างซึ่งทำให้โปรแกรมเมอร์สามารถมั่นใจได้ว่าแม้ในกรณีที่มีข้อยกเว้นโปรแกรมสามารถคืนค่าได้ ไปยังสถานะที่ปลอดภัยมั่นคงปราศจากการรั่วไหลใกล้กับจุดจัดสรรทรัพยากรและรหัสที่อาจเป็นปัญหา ในฐานะที่เป็นโปรแกรมเมอร์ Delphi และ C # ที่มีประสบการณ์มากฉันใช้ลอง .. ในที่สุดบล็อกค่อนข้างครอบคลุมในรหัสของฉันเช่นเดียวกับโปรแกรมเมอร์ส่วนใหญ่ในภาษาเหล่านี้
เมื่อพิจารณาถึง 'ระฆังและเสียงนกหวีด' ทั้งหมดที่ใช้ใน C ++ 11 ฉันประหลาดใจที่พบว่า 'ในที่สุด' ก็ยังไม่อยู่ที่นั่น
ดังนั้นทำไมfinally
โครงสร้างไม่เคยถูกนำมาใช้ใน C ++ ไม่ใช่เรื่องยากหรือแนวคิดขั้นสูงที่จะเข้าใจและไปไกลเพื่อช่วยโปรแกรมเมอร์เขียน 'รหัสที่ปลอดภัยยกเว้น'
finally
ใน C ++ และมีเทคนิคใดบ้างที่ใช้ในการจัดการข้อยกเว้นในสถานที่นั้น" ถูกต้องและในหัวข้อสำหรับเว็บไซต์นี้ ฉันคิดว่าคำตอบที่มีอยู่ครอบคลุมเรื่องนี้เป็นอย่างดี เปลี่ยนเป็นการอภิปรายเกี่ยวกับ "เหตุผลของนักออกแบบ C ++ ที่ไม่finally
คุ้มค่าหรือไม่" และ "ควรfinally
เพิ่มใน C ++ หรือไม่" และดำเนินการอภิปรายเกี่ยวกับความคิดเห็นเกี่ยวกับคำถามและคำตอบทุกข้อไม่ตรงกับรูปแบบของเว็บไซต์ถามตอบ