[解決済み】Pythonでカスタムメッセージで同じExceptionを発生させる方法は?
2022-04-13 11:59:53
質問
私はこれを持っています
try
ブロックを作成しました。
try:
do_something_that_might_raise_an_exception()
except ValueError as err:
errmsg = 'My custom error message.'
raise ValueError(errmsg)
厳密には、私が実際に上げているのは
もう一つ
ValueError
ではなく
ValueError
で投げられた
do_something...()
と呼ばれるものである。
err
この場合 カスタムメッセージはどのように
err
? 次のコードを試してみましたが、以下の理由で失敗しました。
err
, a
ValueError
インスタンス
呼び出すことができない。
try:
do_something_that_might_raise_an_exception()
except ValueError as err:
errmsg = 'My custom error message.'
raise err(errmsg)
解決方法は?
更新してください。 Python 3 の場合は、以下を参照してください。 Benの回答
現在の例外にメッセージを添付して再出現させること。 (外側のtry/exceptは効果を示すためだけです)
Python 2.x で x>=6 の場合。
try:
try:
raise ValueError # something bad...
except ValueError as err:
err.message=err.message+" hello"
raise # re-raise current exception
except ValueError as e:
print(" got error of type "+ str(type(e))+" with message " +e.message)
これはまた、正しいことを行うでしょう
もし
err
は
派生
から
ValueError
. 例えば
UnicodeDecodeError
.
に好きなものを追加できることに注意してください。
err
. 例えば
err.problematic_array=[1,2,3]
.
編集する
Ducan のコメントで、上記は python 3 では動作しないことが指摘されています。
.message
のメンバーではありません。
ValueError
. その代わりに、次のように使うことができます (有効な Python 2.6 以降または 3.x):
try:
try:
raise ValueError
except ValueError as err:
if not err.args:
err.args=('',)
err.args = err.args + ("hello",)
raise
except ValueError as e:
print(" error was "+ str(type(e))+str(e.args))
Edit2:
目的によっては、自分の変数名の下に余分な情報を追加することも可能です。python2、python3ともに。
try:
try:
raise ValueError
except ValueError as err:
err.extra_info = "hello"
raise
except ValueError as e:
print(" error was "+ str(type(e))+str(e))
if 'extra_info' in dir(e):
print e.extra_info
関連
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み] 例外に情報を追加する?