ฉันคิดว่าคุณกำลังอยู่ในเส้นทางที่ถูกต้อง การขว้างปาจับหรือจัดทำเอกสารข้อยกเว้นที่อาจเกิดขึ้นได้ทั้งหมดไม่สมเหตุสมผลนัก มีหลายครั้งที่ความเข้มงวดของผลิตภัณฑ์ต้องการระดับที่สูงขึ้นของการจ้างงานและการจัดทำเอกสารยกเว้น (เช่นลักษณะที่สำคัญด้านความปลอดภัยของระบบ)
กลยุทธ์ของการป้องกันมากขึ้นโดยใช้แนวคิดสัญญาเพื่อระบุเงื่อนไข (และ postconditions) โดยเฉพาะอย่างยิ่งผู้โทรดาวน์สตรีม (เช่นสิ่งใดก็ตามที่มีลักษณะคล้ายกับสมาชิกสาธารณะหรือสมาชิกที่ได้รับความคุ้มครอง) มักจะมีประสิทธิภาพและยืดหยุ่นมากขึ้น สิ่งนี้ไม่เพียงนำไปใช้กับการนำไปใช้ แต่ยังรวมถึงเอกสารประกอบ หากนักพัฒนาทราบว่าสิ่งที่คาดหวังพวกเขามีแนวโน้มที่จะปฏิบัติตามกฎระเบียบและมีแนวโน้มที่จะสับสนน้อยลงหรือใช้รหัสที่คุณเขียนในทางที่ผิด
สิ่งทั่วไปบางอย่างที่ควรบันทึกไว้รวมถึงกรณีของพารามิเตอร์ว่าง บ่อยครั้งที่มีผลต่อการใช้งานของพวกเขาที่ผลักดันผลลัพธ์ไปสู่สิ่งที่ไม่คาดคิด แต่จะได้รับอนุญาตและใช้ด้วยเหตุผลหลายประการบางครั้งเพื่อความยืดหยุ่น ในฐานะผู้บริโภคของสมาชิกที่มีพารามิเตอร์ที่อนุญาตให้เป็นโมฆะหรือค่าพิเศษอื่น ๆ ที่ไม่ใช่เหตุผล (เช่นเวลาเชิงลบหรือปริมาณเชิงลบ) ฉันคาดว่าจะเห็นพวกเขาระบุและอธิบาย
สำหรับพารามิเตอร์ที่ไม่ใช่ null ในฐานะผู้บริโภคของสมาชิกสาธารณะหรือสมาชิกที่ได้รับการปกป้องฉันต้องการทราบว่าไม่อนุญาต ฉันต้องการทราบว่าช่วงของค่าที่ถูกต้องในบริบทที่กำหนดคืออะไร ฉันต้องการทราบผลที่ตามมาของการใช้ค่าที่อยู่นอกช่วงปกติ แต่ไม่ถูกต้องในบริบทการโทรที่แตกต่างกัน (เช่นค่าของประเภทนั้นโดยทั่วไปถูกต้องสำหรับการดำเนินการใด ๆ แต่ไม่ใช่ที่นี่ - เช่นพารามิเตอร์บูลีนที่ไม่ ไม่คาดหวังความผิดพลาดเป็นค่าที่ถูกต้อง
เท่าที่แพลตฟอร์มหรืออินเทอร์เฟซที่รู้จักกันดีฉันไม่คิดว่าคุณจะต้องทำสุดขั้วในการทำเอกสาร อย่างไรก็ตามเนื่องจากคุณมีโอกาสในฐานะนักพัฒนาที่จะปรับเปลี่ยนการใช้งานจากคำแนะนำแพลตฟอร์มใด ๆ ให้จดบันทึกว่ามันปฏิบัติตามคำแนะนำนั้นอย่างไรอาจมีค่า
โดยเฉพาะกับ IDisposable มักจะใช้งานอินเทอร์เฟซนี้เสนอวิธีการอื่นที่ต้องการผ่านกระบวนการกำจัดอย่างชัดเจน ในกรณีเหล่านี้ให้ไฮไลต์วิธีที่ต้องการและโปรดทราบว่าไม่ต้องการการกำจัดที่ชัดเจน