PyAutoGui を使用して画面上の画像の存在を確認する関数を設計する際に、次のアプローチを採用しました。
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except: return False
この関数は意図したとおりに機能しているように見えますが、PyCharm は裸の '例外' に次のようなフラグを立てます。お勧めできません。これにより、「例外」を装飾せずに残すことの影響についての懸念が生じます。
裸の「例外」は、予期されない例外や例外を含むすべての例外を無差別に遮断します。望ましい。 KeyboardInterrupt (Ctrl C) や SystemExit などの Python 生成エラーなどの例外は、この方法で処理すべきではありません。
コードで処理できるように準備されている例外のタイプを明示的に指定することをお勧めします。 、少なくとも「Exception」、すべての「通常の」例外の基礎クラスです。
エラー「例外」ブロックは、事前定義された障害シナリオからの回復に使用することを目的としています。ただし、未知の障害シナリオから完全に回復することは一般に不可能です。このような場合、プログラムを続行するのではなく、プログラムを終了することをお勧めします。これは、例外が処理されない場合の Python インタープリタのデフォルトの動作です。
対処方法がわかっている例外のみをトラップすることが賢明です。残りの例外は、別のコンポーネントが処理できることを期待して、呼び出しスタックの上に伝播できるようにする必要があります。画像の存在を確認する場合、予期されるエラー (ドキュメントごとに) は pyautogui.ImageNotFoundException です。
前述の洞察に基づいて、関数をリファクタリングして、提起された懸念に対処できます。裸の '例外' によって:
def check_image_on_screen(image): try: pyautogui.locateCenterOnScreen(image) return True except pyautogui.ImageNotFoundException: return False
関数が意図する特定の例外を指定することによってハンドルを使用すると、コードの信頼性と保守性が向上します。
以上がPython での裸の「excel」句はなぜ悪い習慣とみなされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。