'except' だけを使うと何が問題になるのでしょうか? 質問する

'except' だけを使うと何が問題になるのでしょうか? 質問する

PyAutoGui を使用して画面に画像が表示されているかどうかを確認する関数を作成しようとしたところ、次のようになりました。

def check_image_on_screen(image):
    try:
        pyautogui.locateCenterOnScreen(image)
        return True
    except:
        return False

問題なく動作しますが、PyCharm はそのままにしておくべきではないと伝えますexcept。このようにしておくと何が問題になるのでしょうか? 同じ関数を作成するより適切な方法はありますか?

ベストアンサー1

Bareは、(ユーザーがCtrl+Cを押した場合など)exceptキャッチしたくない例外や、次のようなPythonで発生したエラーをキャッチします。KeyboardInterruptSystemExit

特定の例外を予期していない場合は、少なくともexcept Exception(すべての「通常の」例外の基本型)が必要です。


とはいえ、exceptブロックは既知の障害状態から回復するために使用します。未知の障害状態は通常回復不可能であり、適切な行動これらの状態では致命的に終了し、これは Python インタープリターがキャッチされない例外に対して自然に行うことです。

処理方法がわかっているものはすべてキャッチし、残りはコールスタックに伝播させて、他の方法で処理できるかどうかを確認します。この場合、予想しているエラー(ドキュメント) はpyautogui.ImageNotFoundException

おすすめ記事