หลังจากอ่านคำตอบส่วนใหญ่แล้วฉันต้องการเพิ่มความคิดสองสามข้อ
การอาศัยข้อคิดเห็นเกี่ยวกับเอกสาร XML และการคาดหวังให้ผู้อื่นพึ่งพาเป็นทางเลือกที่ไม่ดี รหัส C # ส่วนใหญ่ที่ฉันพบไม่ได้จัดทำเอกสารวิธีการอย่างสมบูรณ์และสอดคล้องกับข้อคิดเห็นเกี่ยวกับเอกสาร XML แล้วมีปัญหาใหญ่กว่าที่หากไม่มีการตรวจสอบข้อยกเว้นใน C # คุณจะบันทึกข้อยกเว้นทั้งหมดที่วิธีการของคุณพ่นเพื่อจุดประสงค์ให้ผู้ใช้ API ของคุณทราบวิธีจัดการทั้งหมดทีละรายการได้อย่างไร จำไว้ว่าคุณรู้เฉพาะเกี่ยวกับสิ่งที่คุณใช้คำหลัก "โยน" ในการนำไปใช้งาน API ที่คุณใช้ในการใช้งานวิธีการของคุณอาจทำให้เกิดข้อยกเว้นที่คุณไม่ทราบเนื่องจากอาจไม่ได้รับการจัดทำเป็นเอกสารและคุณไม่ได้จัดการกับมันในการนำไปใช้งานดังนั้น API เหล่านี้จะระเบิดต่อหน้าผู้โทร วิธี. กล่าวอีกนัยหนึ่ง
Andreas เชื่อมโยงการสัมภาษณ์กับ Anders Hejlsberg ในคำตอบที่นี่เกี่ยวกับสาเหตุที่ทีมออกแบบ C # ตัดสินใจไม่ใช้ข้อยกเว้นที่ตรวจสอบแล้ว คำตอบที่ดีที่สุดสำหรับคำถามเดิมซ่อนอยู่ในการสัมภาษณ์นั้น:
โปรแกรมเมอร์ปกป้องโค้ดของพวกเขาด้วยการเขียนพยายามทุกที่ในที่สุดดังนั้นพวกเขาจะกลับออกไปอย่างถูกต้องหากมีข้อยกเว้นเกิดขึ้น แต่พวกเขาไม่สนใจที่จะจัดการกับข้อยกเว้น
กล่าวอีกนัยหนึ่งก็คือไม่มีใครสนใจว่าจะมีข้อยกเว้นประเภทใดสำหรับ API บางตัวเนื่องจากคุณมักจะจับทุกอย่างได้ทุกที่ และหากคุณต้องการสนใจเกี่ยวกับข้อยกเว้นบางอย่างจริงๆวิธีจัดการก็ขึ้นอยู่กับคุณไม่ใช่ใครกำหนดลายเซ็นวิธีการด้วยคำหลักเช่น Java พ่นคำหลักบังคับให้จัดการข้อยกเว้นเฉพาะสำหรับผู้ใช้ API
-
ส่วนตัวฉันฉีกที่นี่ ฉันเห็นด้วยกับ Anders ว่าการตรวจสอบข้อยกเว้นไม่สามารถแก้ปัญหาได้โดยไม่ต้องเพิ่มปัญหาใหม่ที่แตกต่างออกไป เช่นเดียวกับความคิดเห็นในเอกสาร XML ฉันแทบจะไม่เห็นรหัส C # ที่มีทุกอย่างอยู่ในการลองบล็อกในที่สุด ฉันรู้สึกว่านี่เป็นทางเลือกเดียวของคุณและเป็นสิ่งที่ดูเหมือนเป็นแนวทางปฏิบัติที่ดี