[解決済み] Pythonで悪い/不正な引数の組み合わせに対してどの例外を発生させるべきですか?
2022-03-14 17:21:40
質問
Pythonで無効な引数の組み合わせを表示するためのベストプラクティスについて疑問に思っていました。私は、このような関数がある状況にいくつか遭遇しました。
def import_to_orm(name, save=False, recurse=False):
"""
:param name: Name of some external entity to import.
:param save: Save the ORM object before returning.
:param recurse: Attempt to import associated objects as well. Because you
need the original object to have a key to relate to, save must be
`True` for recurse to be `True`.
:raise BadValueError: If `recurse and not save`.
:return: The ORM object.
"""
pass
これの唯一の問題は、すべてのパッケージが独自の、通常はわずかに異なる
BadValueError
. 私は、Javaに存在する
java.lang.IllegalArgumentException
-- を作成することが理解されていますか?
BadValueError
それとも、他に望ましい方法があるのでしょうか?
どのように解決するのですか?
私なら バリューエラー より具体的な例外が必要な場合を除きます。
def import_to_orm(name, save=False, recurse=False):
if recurse and not save:
raise ValueError("save must be True if recurse is True")
をする意味がないんです。
class BadValueError(ValueError):pass
- カスタムクラスの使用方法は
バリューエラー
ということで、それを使ってみてはいかがでしょうか。
関連
-
PythonによるExcelファイルの一括操作の説明
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] を付けるべきでしょうか?(shebang)を付けるべきか、またどのような形で付けるべきか?
-
[解決済み] Pythonで例外を表示するには?
-
[解決済み] Pythonのdictsで'has_key()'と'in'のどちらを使うべきですか?
-
[解決済み] Pythonの関数が例外を投げるかどうかをテストするにはどうすればよいですか?
-
[解決済み] pythonの例外メッセージのキャプチャ
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み] Pythonの "assert "はどのように使うのですか?