裸の「except」を使って何が悪い?[重複】について]
2023-09-15 23:07:43
質問
PyAutoGuiを使って、画面に画像が表示されているかどうかを確認する関数を作ってみたところ、こんな感じになりました。
def check_image_on_screen(image):
try:
pyautogui.locateCenterOnScreen(image)
return True
except:
return False
で、問題なく動作するのですが、PyCharmが
except
をむき出しにするように言われました。このままにしておくと何が問題なのでしょうか?同じ関数を作るのにもっと適切な方法があるのでしょうか?
どのように解決するのですか?
裸
except
は、ほとんど確実に捕えたくない例外を捕えます。
KeyboardInterrupt
(ユーザが Ctrl+C を押したとき) や、Python が発生させた
SystemExit
期待する特定の例外がない場合、少なくとも
except Exception
これはすべての "通常" の例外のための基本型です。
とは言うものの、あなたは
except
ブロックは、既知の障害状態から回復するために使用します。未知の障害状態は通常回復不可能であり、それは
適切な動作
であり、Pythonインタプリタがキャッチされない例外で自然に終了するものです。
処理する方法を知っているものはすべてキャッチし、残りは他の何かがそれを処理できるかどうかを確認するためにコールスタックを伝搬させます。この場合、あなたが期待しているエラーは (
docs
によって) 期待しているエラーは
pyautogui.ImageNotFoundException
関連
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リストの要素を値で削除する簡単な方法はありますか?
-
[解決済み] すべての例外をキャッチする `try`/`except` ブロックはどのように書けばよいですか?
-
[解決済み】なぜ "except: pass "は悪いプログラミング手法なのか?
-
[解決済み] 複数のステートメントを1行にまとめるには?
-
[解決済み] Pythonで文字列が数字だけを含んでいるかどうかをチェックするには?
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Pythonの文字列書式をリストで使う