การจัดการข้อผิดพลาดในรหัส C
สิ่งใดที่คุณพิจารณาว่า "แนวปฏิบัติที่ดีที่สุด" เมื่อพูดถึงข้อผิดพลาดในการจัดการข้อผิดพลาดด้วยวิธีที่สอดคล้องกันในไลบรารี C มีสองวิธีที่ฉันคิดถึง: ส่งคืนรหัสข้อผิดพลาดเสมอ ฟังก์ชั่นทั่วไปจะมีลักษณะเช่นนี้: MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); วิธีการระบุข้อผิดพลาดตัวชี้: int getObjectSize(MYAPIHandle h, MYAPI_ERROR* returnedError); เมื่อใช้วิธีแรกเป็นไปได้ที่จะเขียนโค้ดเช่นนี้ซึ่งมีการตรวจสอบข้อผิดพลาดในการเรียกใช้ฟังก์ชันโดยตรง: int size; if(getObjectSize(h, &size) != MYAPI_SUCCESS) { // Error handling } ซึ่งดูดีกว่ารหัสการจัดการข้อผิดพลาดที่นี่ MYAPIError error; int size; size = getObjectSize(h, &error); if(error != MYAPI_SUCCESS) { // Error handling } อย่างไรก็ตามฉันคิดว่าการใช้ค่าส่งคืนสำหรับการส่งคืนข้อมูลทำให้โค้ดอ่านง่ายขึ้นเห็นได้ชัดว่ามีบางสิ่งเขียนไปยังตัวแปรขนาดในตัวอย่างที่สอง คุณมีความคิดเห็นเกี่ยวกับสาเหตุที่ฉันควรเลือกวิธีใดวิธีหนึ่งเหล่านั้นหรืออาจผสมพวกเขาหรือใช้อย่างอื่น? ฉันไม่ได้เป็นแฟนตัวยงของข้อผิดพลาดระดับโลกเนื่องจากมันมีแนวโน้มที่จะทำให้การใช้งานแบบมัลติเธรดของห้องสมุดเป็นไปอย่างเจ็บปวดยิ่งขึ้น …