คำถามติดแท็ก custom-exceptions

10
วิธีที่เหมาะสมในการประกาศข้อยกเว้นที่กำหนดเองใน Python สมัยใหม่หรือไม่
วิธีที่เหมาะสมในการประกาศคลาสยกเว้นแบบกำหนดเองใน Python สมัยใหม่คืออะไร เป้าหมายหลักของฉันคือการติดตามคลาสยกเว้นอื่น ๆ ที่เป็นมาตรฐานดังนั้น (เช่น) สตริงพิเศษใด ๆ ที่ฉันรวมไว้ในข้อยกเว้นจะถูกพิมพ์ออกมาโดยเครื่องมือใดก็ตามที่จับข้อยกเว้นได้ โดย "modern Python" ฉันหมายถึงสิ่งที่จะทำงานใน Python 2.5 แต่จะ 'ถูกต้อง' สำหรับ Python 2.6 และ Python 3 * วิธีการทำสิ่งต่างๆ และโดย "กำหนดเอง" ฉันหมายถึงวัตถุยกเว้นที่สามารถรวมข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุของข้อผิดพลาด: สตริงหรืออาจเป็นวัตถุอื่น ๆ ที่เกี่ยวข้องกับข้อยกเว้น ฉันถูกสะดุดโดยคำเตือนเรื่องเลิกใช้งานต่อไปนี้ใน Python 2.6.2: >>> class MyError(Exception): ... def __init__(self, message): ... self.message = message ... >>> MyError("foo") _sandbox.py:3: …

20
การจัดการข้อผิดพลาด jQuery Ajax แสดงข้อความยกเว้นที่กำหนดเอง
มีวิธีที่ฉันสามารถแสดงข้อความยกเว้นที่กำหนดเองเป็นการแจ้งเตือนในข้อความแสดงข้อผิดพลาด jQuery AJAX ของฉันหรือไม่ ตัวอย่างเช่นถ้าฉันต้องการส่งข้อยกเว้นทางฝั่งเซิร์ฟเวอร์ผ่านStrutsโดยthrow new ApplicationException("User name already exists");ฉันต้องการจับข้อความนี้ ('ชื่อผู้ใช้มีอยู่แล้ว') ในข้อความแสดงข้อผิดพลาด jQuery AJAX jQuery("#save").click(function () { if (jQuery('#form').jVal()) { jQuery.ajax({ type: "POST", url: "saveuser.do", dataType: "html", data: "userId=" + encodeURIComponent(trim(document.forms[0].userId.value)), success: function (response) { jQuery("#usergrid").trigger("reloadGrid"); clear(); alert("Details saved successfully!!!"); }, error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); } …

4
คลาสข้อผิดพลาดที่กำหนดเองของ Ruby: การสืบทอดแอตทริบิวต์ข้อความ
ดูเหมือนจะหาข้อมูลเกี่ยวกับคลาสข้อยกเว้นแบบกำหนดเองไม่ได้มากนัก สิ่งที่ฉันรู้ คุณสามารถประกาศคลาสข้อผิดพลาดที่กำหนดเองและปล่อยให้สืบทอดจากStandardErrorดังนั้นจึงเป็นrescued: class MyCustomError < StandardError end สิ่งนี้ช่วยให้คุณสามารถเพิ่มได้โดยใช้: raise MyCustomError, "A message" และรับข้อความนั้นในภายหลังเมื่อช่วยชีวิต rescue MyCustomError => e puts e.message # => "A message" อะไรไม่รู้ ฉันต้องการยกเว้นฟิลด์ที่กำหนดเองของฉัน แต่ฉันต้องการสืบทอดmessageแอตทริบิวต์จากคลาสแม่ ผมพบว่าการอ่านในหัวข้อนี้ที่@messageไม่ได้เป็นตัวแปรเช่นการเรียนการยกเว้นดังนั้นฉันกังวลว่ามรดกของฉันจะไม่ทำงาน ใครสามารถให้รายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ได้หรือไม่? ฉันจะใช้คลาสข้อผิดพลาดที่กำหนดเองกับobjectแอตทริบิวต์ได้อย่างไร ถูกต้องดังต่อไปนี้: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end แล้ว: raise MyCustomError.new(anObject), "A …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.