ホームページ >バックエンド開発 >Python チュートリアル >Python のエラー処理において、裸の `excel` 句を使用することが危険なのはなぜですか?

Python のエラー処理において、裸の `excel` 句を使用することが危険なのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 17:18:12707ブラウズ

Why is using a bare `except` clause dangerous in Python error handling?

裸の '例外' を使用する危険性

画面上の画像の存在を検出する関数を作成しようとしているときに、開発者は警告に遭遇しました「例外」が裸のままになるのを避けるために、PyCharm から削除します。この問題を理解するために、提供されている関数を調べてみましょう:

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

この問題は、抑制すべきでない例外も含め、裸の 'excel' ブロックがすべての例外をキャッチするために発生します。これには、「KeyboardInterrupt」例外 (ユーザーが Ctrl C を押して実行を中断したとき) や、「SystemExit」などの Python によって発生したエラーが含まれます。

適切な例外処理

予期される特定の例外がない場合は、少なくともすべての「通常」をカバーする「例外」基本タイプをキャッチすることをお勧めします。例外。ただし、このシナリオでは、予期されるエラーが「pyautogui」ドキュメントに「ImageNotFoundException」として明示的に記載されています。より適切な関数は、次の特定の例外を利用します。

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

例外障害処理

「例外」ブロックは、既知の障害状態から回復することを目的としていることに注意してください。未知のエラーは回復できないことが多いため、そのような例外がコール スタックに伝播して別の場所で処理できるようにすることが最善です。この場合、Python インタープリターはデフォルトでプログラムを正常に終了することで、キャッチされなかった例外を処理します。

結論: 堅牢な例外処理を確保するには、「例外」ブロックを使用して既知の障害状態をキャッチし、それらを適切に処理します。未知の例外を伝播させ、インタプリタのデフォルト動作がそれに応じて動作できるようにします。

以上がPython のエラー処理において、裸の `excel` 句を使用することが危険なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。