เมธอด A เรียกเมธอด B ซึ่งจะเรียกเมธอด C
ไม่มีการจัดการข้อยกเว้นใน MethodB หรือ MethodC แต่มีข้อยกเว้นการจัดการใน MethodA
ใน MethodC มีข้อยกเว้นเกิดขึ้น
ตอนนี้ข้อยกเว้นนั้นทำให้เดือดร้อนขึ้นไปที่ MethodA ซึ่งจัดการมันอย่างเหมาะสม
เกิดอะไรขึ้นกับสิ่งนี้?
ในใจของฉันในบางจุดผู้เรียกจะเรียกใช้เมธอด B หรือ MethodC และเมื่อเกิดข้อยกเว้นขึ้นในวิธีการเหล่านั้นสิ่งที่จะได้รับจากการจัดการข้อยกเว้นภายในวิธีการเหล่านั้นซึ่งโดยพื้นฐานแล้วเป็นเพียงลอง / จับ / ในที่สุดบล็อก พวกเขาฟองขึ้นไปที่ callee?
คำแถลงหรือความเห็นเป็นเอกฉันท์เกี่ยวกับการจัดการข้อยกเว้นคือการโยนเมื่อการดำเนินการไม่สามารถดำเนินการได้เนื่องจากข้อผิดพลาดนั้น ฉันเข้าใจ. แต่ทำไมไม่จับข้อยกเว้นเพิ่มเติมขึ้นโซ่แทนที่จะลอง / จับบล็อกจนสุด
ฉันเข้าใจเมื่อคุณต้องการเพิ่มทรัพยากร นั่นเป็นเรื่องที่แตกต่างอย่างสิ้นเชิง
try-catch
บล็อกเลย
Result<T>
ชนิด (ชนิดที่เก็บผลลัพธ์ของการคำนวณหรือข้อผิดพลาด) และส่งคืนจากฟังก์ชันการขว้างของคุณ การเผยแพร่ข้อผิดพลาดขึ้นสแต็กจะเกี่ยวข้องกับการอ่านทุกค่าส่งคืนตรวจสอบว่ามีข้อผิดพลาดและส่งกลับข้อผิดพลาดถ้าเป็นเช่นนั้น