คำถามติดแท็ก exception-handling

การจัดการข้อยกเว้นเป็นกระบวนการของการตอบสนองต่อการเกิดขึ้นของเงื่อนไขที่ผิดปกติหรือพิเศษที่ต้องการการประมวลผลพิเศษ - มักจะเปลี่ยนการไหลปกติของการทำงานของโปรแกรม

8
การใช้การลองใช้ในที่สุด (ไม่จับ) vs การตรวจสอบความถูกต้องของ enum
ฉันได้อ่านคำแนะนำเกี่ยวกับคำถามนี้ว่าควรจะจัดการกับข้อยกเว้นอย่างไรให้ใกล้เคียงกับที่เป็นไปได้มากที่สุด ขึ้นเขียงของฉันในการปฏิบัติที่ดีที่สุดคือว่าควรใช้ลอง / catch / ในที่สุดเพื่อส่งกลับ enum (หรือ int ที่แสดงถึงค่า 0 สำหรับข้อผิดพลาด 1 สำหรับตกลง 2 สำหรับคำเตือน ฯลฯ ขึ้นอยู่กับกรณี)เพื่อให้ คำตอบอยู่ในระเบียบเสมอหรือควรให้ข้อยกเว้นดำเนินไปเพื่อที่ส่วนการเรียกจะจัดการกับมัน จากสิ่งที่ฉันสามารถรวบรวมได้สิ่งนี้อาจแตกต่างกันไปขึ้นอยู่กับกรณีดังนั้นคำแนะนำดั้งเดิมดูเหมือนแปลก ตัวอย่างเช่นในเว็บเซอร์วิสคุณต้องการกลับสู่สถานะของหลักสูตรเสมอดังนั้นข้อยกเว้นใด ๆ จะต้องได้รับการจัดการทันที แต่ให้พูดในฟังก์ชั่นที่โพสต์ / รับข้อมูลบางส่วนผ่าน http คุณต้องการ ข้อยกเว้น (ตัวอย่างเช่นในกรณีของ 404) ที่เพิ่งผ่านไปหนึ่งอันที่ยิงมัน หากคุณไม่ทำเช่นนั้นคุณจะต้องสร้างวิธีที่จะแจ้งส่วนการโทรของคุณภาพของผลลัพธ์ (ข้อผิดพลาด: 404) รวมถึงผลลัพธ์เอง แม้ว่าจะเป็นไปได้ที่จะลองจับข้อยกเว้น 404 ภายในฟังก์ชั่นตัวช่วยที่ได้รับ / โพสต์ข้อมูลคุณควรไหม มีเพียงฉันที่ใช้อักษรตัวเล็ก ๆ เพื่อแสดงสถานะในโปรแกรม (และจัดทำเอกสารอย่างเหมาะสม) แล้วใช้ข้อมูลนี้เพื่อจุดประสงค์ในการตรวจสอบความมีเหตุผล อัปเดต:ฉันคาดหวังว่าจะมีข้อยกเว้นร้ายแรง / ไม่ร้ายแรงสำหรับการจัดหมวดหมู่หลัก แต่ฉันไม่ต้องการรวมสิ่งนี้ไว้เพื่อไม่ให้อคติต่อคำตอบ …

4
ใช้“ ข้อยกเว้นที่จับได้” เพื่อปรับปรุงความสามารถในการอ่านดีหรือไม่ดี?
ในส่วนเวลาที่จะใช้ข้อยกเว้นในThe Pragmatic Programmerหนังสือเขียนว่า: retcode = OK; if (socket.read(name) != OK) { retcode = BAD_READ; } else { processName(name); if (socket.read(address) != OK) { retcode = BAD_READ; } else { processAddress(address); if (socket.read(telNo) != OK) { retcode = BAD_READ; } else { // etc, etc... } } } return retcode; พวกเขาชอบ: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.