5
ข้อยกเว้นเป็นการยืนยันหรือเป็นข้อผิดพลาด?
ฉันเป็นโปรแกรมเมอร์ C มืออาชีพและเป็นนักเขียน Obj-C โปรแกรมเมอร์ (OS X) เมื่อเร็ว ๆ นี้ฉันถูกล่อลวงให้ขยายไปสู่ C ++ เนื่องจากมีไวยากรณ์ที่หลากหลายมาก จนถึงตอนนี้ฉันไม่ได้จัดการกับข้อยกเว้นมากนัก Objective-C มี แต่นโยบายของ Apple ค่อนข้างเข้มงวด: สิ่งสำคัญคุณควรสำรองการใช้ข้อยกเว้นสำหรับการเขียนโปรแกรมหรือข้อผิดพลาดรันไทม์ที่ไม่คาดคิดเช่นการเข้าถึงคอลเลกชันที่ไม่อยู่ในขอบเขตพยายามที่จะกลายพันธุ์วัตถุที่ไม่เปลี่ยนรูปได้ส่งข้อความไม่ถูกต้องและสูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์หน้าต่าง C ++ ดูเหมือนจะชอบการใช้ข้อยกเว้นบ่อยกว่า ตัวอย่างเช่นตัวอย่างวิกิพีเดียในRAIIส่งข้อยกเว้นหากไม่สามารถเปิดไฟล์ได้ Object--C จะreturn nilมีข้อผิดพลาดที่ส่งโดยพารามิเตอร์ออก โดยเฉพาะอย่างยิ่งดูเหมือนว่า std :: ofstream สามารถตั้งค่าได้ทั้งสองทาง ที่นี่ในโปรแกรมเมอร์ฉันพบคำตอบหลายข้อทั้งการประกาศให้ใช้ข้อยกเว้นแทนรหัสข้อผิดพลาดหรือไม่ใช้ข้อยกเว้นเลย อดีตดูเหมือนแพร่หลายมากขึ้น ฉันไม่พบใครที่กำลังทำการศึกษาอย่างมีจุดประสงค์สำหรับ C ++ สำหรับฉันแล้วดูเหมือนว่าเนื่องจากพอยน์เตอร์หายากฉันจะต้องดำเนินการกับข้อผิดพลาดภายในหากฉันเลือกที่จะหลีกเลี่ยงข้อยกเว้น มันจะลำบากเกินกว่าจะจัดการหรืออาจจะทำงานได้ดีกว่าข้อยกเว้น? การเปรียบเทียบทั้งสองกรณีจะเป็นคำตอบที่ดีที่สุด แก้ไข: แม้ว่าจะไม่เกี่ยวข้องกันโดยสมบูรณ์ แต่ฉันก็ควรจะอธิบายให้ชัดเจนว่าอะไรnilคือสิ่งที่ ทางเทคนิคแล้วมันเหมือนกับแต่สิ่งที่เป็นก็ตกลงที่จะส่งข้อความไปยังNULL nilดังนั้นคุณสามารถทำสิ่งที่ชอบ NSError *err = nil; id …
10
c++
exceptions