เรากำลังเปิดตัวระบบและบางครั้งเราได้รับข้อยกเว้นที่มีชื่อเสียงพร้อมกับข้อความNullReferenceException
Object reference not set to an instance of an object
อย่างไรก็ตามในวิธีการที่เรามีวัตถุเกือบ 20 ชิ้นการมีบันทึกซึ่งบอกว่าวัตถุนั้นเป็นโมฆะนั้นไม่มีประโยชน์เลย มันเหมือนกับบอกคุณว่าเมื่อคุณเป็นตัวแทนความปลอดภัยของการสัมมนาคนหนึ่งใน 100 คนเป็นผู้ก่อการร้าย มันไม่มีประโยชน์กับคุณเลย คุณควรได้รับข้อมูลเพิ่มเติมหากคุณต้องการตรวจสอบว่าชายคนไหนเป็นคนที่คุกคาม
ในทำนองเดียวกันถ้าเราต้องการที่จะลบข้อผิดพลาดเราจำเป็นต้องรู้ว่าวัตถุใดเป็นโมฆะ
ตอนนี้มีบางอย่างหมกมุ่นอยู่ในใจฉันมาหลายเดือนแล้วและนั่นก็คือ:
เหตุใด. NET จึงไม่ให้ชื่อเราหรืออย่างน้อยก็ประเภทของการอ้างอิงวัตถุซึ่งเป็นโมฆะ? . ไม่เข้าใจประเภทจากการสะท้อนกลับหรือแหล่งอื่น ๆ
นอกจากนี้แนวปฏิบัติที่ดีที่สุดที่จะเข้าใจว่าวัตถุใดเป็นโมฆะ? เราควรทดสอบความสามารถของวัตถุในบริบทเหล่านี้ด้วยตนเองเสมอและบันทึกผลลัพธ์หรือไม่ มีวิธีที่ดีกว่า?
อัปเดต:
ข้อยกเว้นThe system cannot find the file specified
มีลักษณะเดียวกัน คุณไม่พบไฟล์ใดจนกว่าคุณจะแนบกับกระบวนการและดีบัก ฉันเดาว่าข้อยกเว้นประเภทนี้จะฉลาดขึ้น มันจะดีกว่าไหมถ้า. NET สามารถบอกเราc:\temp.txt doesn't exist.
แทนข้อความทั่วไปได้? ในฐานะนักพัฒนาฉันลงคะแนนใช่
new
ในการสร้างอินสแตนซ์ของคลาส คำใบ้ดังกล่าวเมื่อใดที่ทุกคนช่วยจริงๆ