Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

การเรียนรู้ข้อยกเว้นแบบกำหนดเองใน Ruby:ปรับปรุงการจัดการข้อผิดพลาดและความสามารถในการสังเกต

การปรับแต่งข้อยกเว้นมักไม่ใช่เรื่องปกติในระหว่างการพัฒนาซอฟต์แวร์ แต่ถ้าคุณพบข้อผิดพลาดในเครื่องมือสังเกตการณ์และไม่สามารถระบุปัญหาได้อย่างถูกต้องและรวดเร็ว คุณอาจต้องการข้อมูลเพิ่มเติมและรายละเอียดเกี่ยวกับข้อยกเว้น

บทความนี้จะแสดงวิธีปรับแต่งข้อยกเว้นใน Ruby และบรรเทาปัญหาที่อาจเกิดขึ้นในอนาคตเนื่องจากไม่มีข้อมูลข้อผิดพลาด

มาดำดิ่งกันเลย!

หมายเหตุข้างเคียงฉบับย่อ

โพสต์นี้เป็นความก้าวหน้าตามธรรมชาติของการดีบักใน Ruby ด้วย AppSignal ดังนั้นเราขอแนะนำให้อ่านเรื่องนั้นก่อนเพื่อดูภาพรวมของการดีบักและคำแนะนำเกี่ยวกับข้อยกเว้นแบบกำหนดเอง

วิธีช่วยเหลือข้อยกเว้นด้วย Ruby

Ruby มีคลาสชื่อ 07 ซึ่งคลาสการจัดการข้อผิดพลาดสืบทอดมา ในส่วนนี้ เราจะเข้าใจโฟลว์ข้อยกเว้นเชิงโครงสร้างของ Ruby ดีขึ้น ก่อนที่จะสร้างข้อยกเว้นแบบกำหนดเองของเรา

15 เป็นคลาสข้อยกเว้นหลักใน Ruby และ 22 จะจับข้อยกเว้นทั้งหมดที่สืบทอดมาจาก 37 . การใช้สิ่งนี้ในแอปของเราไม่ใช่แนวปฏิบัติที่ดีที่สุด เนื่องจากจะตรวจจับข้อยกเว้นทั้งหมดที่ใช้ภายในโดย Ruby

วิธีที่ง่ายที่สุดในการช่วยเหลือข้อยกเว้นใน Ruby คือการสร้าง 42 บล็อกของโค้ดตามตัวอย่างด้านล่าง:

 

ตั้งแต่ 54 จะจับข้อยกเว้นได้ทั้งหมด เราควรลองใช้สิ่งที่เจาะจงกว่านี้ในการกรองและรับเฉพาะข้อผิดพลาดที่เราต้องการ ตัวอย่างหนึ่งคือ 67 คลาส ซึ่งเป็นผู้ช่วยชีวิตมาตรฐานที่ใช้ในการจับข้อยกเว้นที่เกี่ยวข้องกับข้อผิดพลาดของโค้ดแอปพลิเคชันโดยไม่สนใจข้อยกเว้นภายในของ Ruby

เพื่อจับ 73 คุณสามารถใช้ตัวอย่างด้านล่าง:

 

หรือหากไม่มีการระบุคลาสข้อยกเว้น Ruby จะส่งกลับข้อยกเว้นที่จัดการโดย 87 ชั้นเรียน

 

หากต้องการสร้างข้อยกเว้นแบบกำหนดเองด้วย Ruby คุณอาจสร้างคลาสที่สืบทอดมาจาก 94 . เราจะพูดถึงเรื่องนี้ในสองสามส่วนถัดไป

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับข้อยกเว้นและค้นหาข้อยกเว้นที่ดีที่สุดที่จะสืบทอด โปรดตรวจสอบรายการข้อยกเว้นของ Ruby

การเพิ่มข้อมูลเพิ่มเติมให้กับข้อยกเว้น Ruby

การสร้างข้อยกเว้นใหม่โดยไม่ส่งข้อมูลที่เกี่ยวข้องจะไม่ช่วยในการแก้ไขจุดบกพร่อง การระบุและแก้ไขปัญหาได้อย่างมีประสิทธิภาพ คุณต้องเพิ่มรายละเอียดข้อผิดพลาด ที่นี่ เราจะดูวิธีการส่งข้อมูลจากออบเจ็กต์ไปยังข้อยกเว้นแบบกำหนดเอง

มาสร้างข้อยกเว้นแบบกำหนดเองใหม่เพื่อรับข้อมูลที่เราต้องการบันทึก ตามที่กล่าวไว้ในส่วนก่อนหน้า ข้อยกเว้นแบบกำหนดเองจำเป็นต้องสืบทอดมาจาก 105 .

คุณสามารถใช้โปรเจ็กต์ Rails แบบธรรมดาเพื่อทดสอบการใช้งานนี้ได้ สร้างโฟลเดอร์ใหม่ชื่อ 110 ภายใน 127 โฟลเดอร์และคลาสที่เรียกว่า 137 ในโครงการ Rails ของคุณ

 

ในคลาสข้อยกเว้นนี้ เราสามารถกำหนดข้อมูลทั้งหมดที่ต้องแสดงในบันทึก และเราใช้แอตทริบิวต์สี่รายการสำหรับข้อมูลของเรา:

  • รหัสเพื่อระบุข้อยกเว้น
  • ชื่อ
  • ข้อความแจ้งข้อมูล
  • รายละเอียดข้อมูลภายในเกี่ยวกับข้อยกเว้นที่ Ruby ระบุไว้แล้ว

และตอนนี้เราสร้าง 146 บล็อกเพื่อเพิ่ม 159 และส่งพารามิเตอร์ไปยังแอตทริบิวต์ข้อยกเว้น

 

สิ่งนี้ดูมีประโยชน์ ดังนั้นเรามาดำเนินการใช้งานต่อไปและใช้ข้อมูลนี้เพื่อปรับแต่งบันทึกข้อยกเว้น

การขยายข้อยกเว้นใน Ruby

การขยายข้อยกเว้นช่วยให้เราสามารถยกระดับการปรับแต่งให้อยู่ในระดับที่เฉพาะเจาะจงมากขึ้นและสามารถนำมาใช้ซ้ำได้ เช่นเดียวกับที่ Ruby มีข้อยกเว้นหลายประการสำหรับข้อผิดพลาดประเภทต่างๆ เราก็สามารถปฏิบัติตามบรรทัดการเขียนโปรแกรมนี้ในระบบของเราได้เช่นกัน

ต่อไป เรามาทำความเข้าใจวิธีการแทนที่ข้อยกเว้นของเราและใช้ในบริบทที่ต้องการส่วนขยาย

การค้นหาข้อมูลในบันทึกเป็นกิจกรรมที่เจ็บปวด นักพัฒนามักตำหนิตัวเองที่ไม่ได้ใส่ข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดหรือวิธีค้นหาและกรอง หากคุณไม่ได้ใช้เครื่องมือตรวจสอบที่ให้สิ่งนี้ รวมถึงข้อมูลที่มีความหมายอาจช่วยคุณประหยัดได้ในอนาคตอันใกล้

เคล็ดลับจากมือโปร :ตรวจสอบส่วน 'การดีบักข้อยกเว้นใน Ruby ด้วย AppSignal' ในโพสต์ของเรา การดีบักใน Ruby ด้วย AppSignal เพื่อดูข้อมูลเกี่ยวกับวิธีการตั้งค่าและติดตามข้อยกเว้นแบบกำหนดเองใน AppSignal

ในตัวอย่างด้านล่าง เราจะปรับแต่งการแสดงข้อยกเว้นในบันทึก ในตอนแรก คุณอาจคิดว่ามันเป็นเพียงวิธีแสดงข้อมูลที่เรียบง่ายและสวยงาม อย่างไรก็ตาม คำหลักที่ใช้ในข้อมูลเป็นกุญแจสำคัญในการค้นหาข้อผิดพลาดและช่วยเหลือใครก็ตามที่จะตรวจสอบแอปพลิเคชัน

เพิ่มอัญมณีหลากสีให้กับโปรเจ็กต์ของคุณโดยใส่โค้ดด้านล่างใน Gemfile ของคุณ

 

เรียกใช้บันเดิลเพื่อติดตั้ง colorize gem และเปิดแอปพลิเคชัน Rails ของคุณ

 

ตอนนี้ในคลาสยกเว้นของคุณ ให้นำเข้าอัญมณี พิมพ์แอตทริบิวต์ในรูปแบบเพื่อให้มองเห็นได้ง่ายและค้นหาข้อผิดพลาดที่สำคัญได้อย่างรวดเร็ว

 

ตรวจสอบผลลัพธ์ของการปรับแต่งภาพนี้ และทดสอบตัวเลือกเพื่อสร้างรูปแบบและสไตล์ของคุณ

การเรียนรู้ข้อยกเว้นแบบกำหนดเองใน Ruby:ปรับปรุงการจัดการข้อผิดพลาดและความสามารถในการสังเกต

การสรุปและขั้นตอนถัดไป

ในโพสต์นี้ เราได้กล่าวถึงวิธีปรับแต่งและเน้นข้อยกเว้น Ruby ในบันทึกของคุณ สามารถปรับแต่งอื่นๆ ได้มากมาย แต่สิ่งที่สำคัญที่สุดคือคุณต้องจัดการกับข้อยกเว้นที่เกี่ยวข้องกับแอปพลิเคชันของคุณ และจำไว้ว่า อย่าใช้สไตล์การจัดรูปแบบเดียวกันกับข้อยกเว้นทั้งหมด เหมือนกับที่ Rails ทำอยู่แล้ว

ขอให้สนุกกับการเขียนโค้ด!

ปล. หากคุณต้องการอ่านโพสต์ Ruby Magic ทันทีที่เผยแพร่ สมัครรับจดหมายข่าว Ruby Magic ของเราและไม่พลาดแม้แต่โพสต์เดียว! การเรียนรู้ข้อยกเว้นแบบกำหนดเองใน Ruby:ปรับปรุงการจัดการข้อผิดพลาดและความสามารถในการสังเกต

เบรนา มอนเตโร

ผู้เขียนรับเชิญ Brena เป็นหัวหน้าฝ่ายเทคโนโลยีที่หลงใหลในการให้คำปรึกษาแก่นักพัฒนาหน้าใหม่และมีประสบการณ์ในการพัฒนาและเป็นผู้นำทีมที่มีประสิทธิภาพสูง เธอมีประสบการณ์ในการสร้าง API ที่ปรับขนาดได้และการบูรณาการระหว่างบริการคลาวด์ มีความกระตือรือร้นเกี่ยวกับสถาปัตยกรรมเชิงวิวัฒนาการ และเป็นเด็กฝึกงาน Extended Reality (XR)

บทความทั้งหมดโดย Brena Monteiro