Questions tagged «custom-exceptions»

10
在现代Python中声明自定义异常的正确方法?
在现代Python中声明自定义异常类的正确方法是什么?我的主要目标是遵循其他异常类具有的任何标准,以便(例如)我捕获到异常中的任何工具都会打印出我包含在异常中的任何多余字符串。 “现代Python”是指可以在Python 2.5中运行但对于Python 2.6和Python 3. *是“正确”的方式。所谓“自定义”,是指一个Exception对象,该对象可以包含有关错误原因的其他数据:字符串,也可以是与该异常相关的其他任意对象。 我在Python 2.6.2中被以下弃用警告绊倒了: >>> class MyError(Exception): ... def __init__(self, message): ... self.message = message ... >>> MyError("foo") _sandbox.py:3: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 BaseException对于名为的属性有特殊含义似乎很疯狂message。我从PEP-352收集到,该属性确实在2.5中有特殊含义,因此他们想弃用该属性,所以我想现在禁止使用该名称了(并且一个人)。啊。 我也模糊地意识到它Exception具有一些不可思议的参数args,但是我从未知道如何使用它。我也不确定这是前进的正确方法。我在网上发现的很多讨论都表明他们正在尝试消除Python 3中的args。 更新:有两个答案建议覆盖__init__,和__str__/ __unicode__/ __repr__。好像要打字很多,有必要吗?

20
jQuery Ajax错误处理,显示自定义异常消息
有什么方法可以在jQuery AJAX错误消息中显示自定义异常消息作为警报? 例如,如果我想通过Struts by 在服务器端抛出异常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自定义错误类:message属性的继承
我似乎找不到有关自定义异常类的更多信息。 我所知道的 您可以声明您的自定义错误类,并使其继承自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 message" 要得到: rescue MyCustomError …

5
Oracle PL / SQL-使用自定义SQLERRM引发用户定义的异常
是否可以创建用户定义的异常并能够更改SQLERRM? 例如: DECLARE ex_custom EXCEPTION; BEGIN RAISE ex_custom; EXCEPTION WHEN ex_custom THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); END; / 输出为“用户定义的异常”。是否可以更改该消息? 编辑:这是一些更多的细节。 我希望这可以说明我正在尝试做的更好的事情。 DECLARE l_table_status VARCHAR2(8); l_index_status VARCHAR2(8); l_table_name VARCHAR2(30) := 'TEST'; l_index_name VARCHAR2(30) := 'IDX_TEST'; ex_no_metadata EXCEPTION; BEGIN BEGIN SELECT STATUS INTO l_table_status FROM USER_TABLES WHERE TABLE_NAME = l_table_name; EXCEPTION WHEN NO_DATA_FOUND THEN -- …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.