タグ付けされた質問 「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で特別な意味を持っていたため、廃止しようとしているので、その名前(およびその1つだけ)は現在禁止されていると思いますか?ああ。 Exception魔法のパラメータがあることもぼんやりと認識していますがargs、その使用方法は知りません。また、それが将来のことを行うための正しい方法であると確信していません。私がオンラインで見つけた多くの議論は、彼らがPython 3の引数を取り除こうとしていることを示唆していました。 更新:2つの回答により、、__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カスタムエラークラス:メッセージ属性の継承
カスタム例外クラスに関する情報があまり見つからないようです。 私が知っていること カスタムエラークラスを宣言し、それをから継承させるStandardErrorことができるため、次のようになりますrescue。 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 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.