PyAutoGui を使用して画面に画像が表示されているかどうかを確認する関数を作成しようとしたところ、次のようになりました。
def check_image_on_screen(image):
try:
pyautogui.locateCenterOnScreen(image)
return True
except:
return False
問題なく動作しますが、PyCharm はそのままにしておくべきではないと伝えますexcept
。このようにしておくと何が問題になるのでしょうか? 同じ関数を作成するより適切な方法はありますか?
ベストアンサー1
Bareは、(ユーザーがCtrl+Cを押した場合など)except
キャッチしたくない例外や、次のようなPythonで発生したエラーをキャッチします。KeyboardInterrupt
SystemExit
特定の例外を予期していない場合は、少なくともexcept Exception
(すべての「通常の」例外の基本型)が必要です。
とはいえ、except
ブロックは既知の障害状態から回復するために使用します。未知の障害状態は通常回復不可能であり、適切な行動これらの状態では致命的に終了し、これは Python インタープリターがキャッチされない例外に対して自然に行うことです。
処理方法がわかっているものはすべてキャッチし、残りはコールスタックに伝播させて、他の方法で処理できるかどうかを確認します。この場合、予想しているエラー(ドキュメント) はpyautogui.ImageNotFoundException