ฉันจะให้ตัวอย่างก่อน (แต่ท้ายที่สุดคือคำตอบว่าทำไมการทะเลาะวิวาท)
ให้คุณทำการแก้ไขเอกสารในเครื่องมือแก้ไขเอกสารที่ใช้ Java และหลังจากที่คุณทำเสร็จแล้วให้คุณเลือกไฟล์ -> บันทึกเป็น ... และคุณเลือกที่จะบันทึกเอกสารลงในไดรฟ์ข้อมูลที่คุณไม่ได้รับอนุญาตให้เขียน ตัวแก้ไขจะไม่ผิดพลาดกับคุณด้วย stacktrace ที่น่าเกลียดมันจะบอกคุณว่ามันไม่สามารถบันทึกไฟล์ได้และมันจะช่วยให้คุณสามารถแก้ไขและ / หรือบันทึกไปยังตำแหน่งอื่นได้
ในกรณีเช่นนี้อาจเป็นข้อยกเว้นที่ตรวจสอบซึ่งคาดว่าจะถูกจับและดำเนินการเพื่อกู้คืนจากพระคุณอย่างงดงาม
ในทางตรงข้าม suposse เหล่านี้หารด้วยศูนย์หรือข้อยกเว้นตัวชี้โมฆะที่เกิดจากข้อผิดพลาดการเขียนโปรแกรมที่ rears หัวน่าเกลียดเฉพาะในเงื่อนไขบางอย่าง ที่อาจเกิดขึ้นได้ทุกที่ในรหัสแรมสามารถเสียหาย ฯลฯ ไม่มี API doc จะบอกคุณ"วิธีการนี้จะโยนหารด้วยศูนย์ถ้า RAM เสียหาย"
ข้อยกเว้นที่ตรวจสอบควรเป็นส่วนหนึ่งของการออกแบบและผู้ใช้ของ API นั้นควรเตรียมที่จะจัดการ ข้อยกเว้นที่ไม่ได้ตรวจสอบอาจเกิดขึ้นได้เกือบทุกที่และอยู่นอกเหนือการควบคุมของเรา
การโต้เถียงเกิดขึ้นจากโปรแกรมเมอร์โดยใช้ข้อยกเว้นที่ไม่ได้ตรวจสอบ (ขยายจาก RuntimeException) เมื่อพวกเขาควรจะใช้ข้อยกเว้นที่เลือก:
- เหมือนชอร์คัทเพื่อไม่ให้คอมไพเลอร์รบกวน
- เพื่อทำให้ลายเซ็นของพวกเขาดูง่ายขึ้น
- เนื่องจากพวกเขาพิจารณาว่าข้อยกเว้นที่ตรวจสอบนั้นเป็นปัญหาการพึ่งพา (ถ้าคุณส่งข้อยกเว้นที่ตรวจสอบใหม่ในคลาสที่ใช้งานคุณควรแก้ไขลายเซ็นของอินเทอร์เฟซ) และ viceversa