ฉันจะส่งคำตอบของฉันไปยังสิ่งที่เกิดขึ้นภายหลังจากข้อยกเว้น: มันดีสำหรับอะไรและซอฟต์แวร์ควรทำอย่างไรผู้ใช้ของคุณควรทำอย่างไรกับข้อยกเว้น เทคนิคที่ยอดเยี่ยมที่ฉันได้พบในช่วงต้นอาชีพของฉันคือการรายงานปัญหาและข้อผิดพลาดใน 3 ส่วน ได้แก่ บริบทปัญหาและวิธีแก้ไข การใช้ข้อผิดพลาดนี้ทำให้เกิดข้อผิดพลาดในการจัดการอย่างมากมายและทำให้ซอฟต์แวร์ดีขึ้นอย่างมากสำหรับผู้ใช้งาน
นี่คือตัวอย่างเล็ก ๆ น้อย ๆ
Context: Saving connection pooling configuration changes to disk.
Problem: Write permission denied on file '/xxx/yyy'.
Solution: Grant write permission to the file.
ในกรณีนี้ผู้ประกอบการรู้ว่าจะทำอย่างไรและไฟล์ใดที่จะต้องได้รับผลกระทบ พวกเขายังรู้ว่าการเปลี่ยนแปลงการรวมการเชื่อมต่อไม่ได้ทำและควรทำซ้ำ
Context: Sending email to 'abc@xyz.com' regarding 'Blah'.
Problem: SMTP connection refused by server 'mail.xyz.com'.
Solution: Contact the mail server administrator to report a service problem. The email will be sent later. You may want to tell 'abc@xyz.com' about this problem.
ฉันเขียนระบบฝั่งเซิร์ฟเวอร์และผู้ให้บริการของฉันมักจะรองรับบรรทัดแรกที่เข้าใจเทคโนโลยี ฉันจะเขียนข้อความต่างกันสำหรับซอฟต์แวร์เดสก์ท็อปที่มีผู้ชมต่างกัน แต่รวมถึงข้อมูลเดียวกัน
มีสิ่งมหัศจรรย์เกิดขึ้นมากมายหากใช้เทคนิคนี้ นักพัฒนาซอฟต์แวร์มักจะถูกวางไว้ที่ดีที่สุดในการรู้วิธีการแก้ปัญหาในรหัสของตัวเองดังนั้นการเข้ารหัสการแก้ปัญหาด้วยวิธีนี้ในขณะที่คุณเขียนรหัสเป็นประโยชน์อย่างมากสำหรับผู้ใช้ปลายทางที่เสียเปรียบในการค้นหาวิธีแก้ปัญหา ซอฟต์แวร์กำลังทำอะไรอยู่ ทุกคนที่เคยอ่านข้อความแสดงข้อผิดพลาดของ Oracle จะรู้ว่าฉันหมายถึงอะไร
สิ่งมหัศจรรย์ที่สองที่นึกถึงคือเมื่อคุณพบว่าตัวเองพยายามอธิบายวิธีการแก้ปัญหาในข้อยกเว้นของคุณและคุณกำลังเขียน "ตรวจสอบ X และถ้า A แล้ว B อื่น C" นี่เป็นสัญญาณที่ชัดเจนและชัดเจนว่ามีการตรวจสอบข้อยกเว้นของคุณในสถานที่ที่ไม่ถูกต้อง โปรแกรมเมอร์คุณมีความสามารถในการเปรียบเทียบสิ่งต่าง ๆ ในรหัสดังนั้น"ถ้า"คำสั่งควรจะทำงานในรหัสทำไมเกี่ยวข้องกับผู้ใช้ในสิ่งที่สามารถอัตโนมัติ? โอกาสที่จะเป็นจากลึกลงไปในรหัสและใครบางคนได้ทำสิ่งที่ขี้เกียจและโยน IOException จากจำนวนของวิธีการใด ๆ และจับข้อผิดพลาดที่อาจเกิดขึ้นจากทั้งหมดของพวกเขาในการป้องกันการเรียกรหัสที่ไม่สามารถเพียงพออธิบายสิ่งที่ผิดพลาดสิ่งที่เฉพาะเจาะจงบริบทคือและวิธีแก้ไข สิ่งนี้กระตุ้นให้คุณเขียนข้อผิดพลาดที่ละเอียดกว่าของธัญพืชจับและจัดการข้อผิดพลาดเหล่านั้นในที่ที่ถูกต้องในโค้ดของคุณเพื่อให้คุณสามารถสื่อสารได้อย่างถูกต้องตามขั้นตอนที่ผู้ปฏิบัติงานควรทำ
ที่ บริษัท แห่งหนึ่งเรามีผู้ให้บริการชั้นแนวหน้าที่รู้จักซอฟต์แวร์ดีมากและรักษา "run book" ของตนเองซึ่งช่วยเพิ่มการรายงานข้อผิดพลาดและแนวทางแก้ไขที่แนะนำ เมื่อต้องการรับรู้นี้ซอฟต์แวร์เริ่มต้นรวมถึงการเชื่อมโยง wiki ไปยังหนังสือที่ทำงานในข้อยกเว้นเพื่อให้คำอธิบายพื้นฐานพร้อมใช้งานเช่นเดียวกับการเชื่อมโยงไปยังการอภิปรายและการสังเกตขั้นสูงโดยผู้ประกอบการเมื่อเวลาผ่านไป
หากคุณมีผู้มีส่วนร่วมในการลองใช้เทคนิคนี้จะเห็นได้ชัดว่าคุณควรตั้งชื่อข้อยกเว้นเป็นรหัสเมื่อสร้างของคุณเอง NonRecoverableConfigurationReadFailedExceptionจะกลายเป็นเรื่องย่อสำหรับสิ่งที่คุณกำลังจะอธิบายให้ผู้ประกอบการได้อย่างเต็มที่ ฉันชอบที่จะ verbose และฉันคิดว่ามันจะง่ายขึ้นสำหรับนักพัฒนาคนต่อไปที่แตะรหัสของฉันเพื่อตีความ