Python Try/Except とエラー処理
Python スクリプトがクラッシュしないようにします。 try、excel、finally ブロックと、カスタム例外を適切に発生させる方法について学びます。
概要
現実のプログラミングの世界では、エラーは完全に避けられません。ファイルが削除されたり、ネットワーク接続が切断されたり、スクリプトが数字を期待しているときにユーザーが文字を入力したりする可能性があります。安全策を講じずにこれらのシナリオが発生すると、Python は実行を停止し、例外 (実行時エラー) をスローして、プログラム全体をクラッシュさせます。エラー処理は、これらの障害を適切に予測して管理する技術です。
Python のエラー管理の基礎は、`try` および `excel` ブロック構造です。潜在的に危険なコードを「try」ブロック内に配置します。 Python はそれを実行しようとします。エラーが発生した場合、Python はクラッシュするのではなく、例外をインターセプトし、すぐにジャンプして「excel」ブロック内に含まれるコードを実行します。これにより、プログラムが回復し、分かりやすいエラー メッセージが表示され、実行を継続できるようになります。
包括的な「例外:」ブロックを記述するのではなく、特定の対象を絞った例外をキャッチすることが重要なベスト プラクティスです。たとえば、`FileNotFoundError` または `ValueError` を明示的にキャッチすると、本当に知る必要がある無関係のバグ (構文エラーなど) を誤ってマスクするのではなく、予期した正確な問題を確実に処理できるようになります。
Python にはオプションの `else` ブロックも用意されており、これは `try` ブロックがエラーを発生させることなく完全に正常に完了した場合にのみ実行されます。ここは、危険な作戦の成功に絶対に依存するロジックを配置するのに最適な場所です。さらに、「finally」ブロックは、エラーが発生したかどうかに関係なく、何が起こってもコードを実行する方法を提供します。 「finally」ブロックは、データベース接続の終了やファイル ロックの解放などのクリーンアップ アクションに不可欠です。
Python では、エラーをキャッチするだけでなく、開発者が「raise」キーワードを使用してエラーを明示的にトリガーすることもできます。例外を発生させると、ロジックに厳密な制約を適用し、アプリケーションの状態が破壊される前に無効なデータを拒否することができます。 Python の基本「Exception」クラスを継承するカスタム例外クラスを定義することにより、開発者は大規模なエンタープライズ アプリケーション向けに高度にドメイン固有のエラー階層を作成できます。
コードと実行の出力
潜在的に危険なファイル構造または存在しないファイル構造を操作するときに構造的な安全性を確保します。
def divide_numbers(a, b):
try:
result = a / b
except ZeroDivisionError:
return "Error: Cannot divide by zero!"
except TypeError:
return "Error: Both arguments must be numbers."
else:
return f"The result is {result}"
finally:
print("Execution completed.")
print(divide_numbers(10, 2))
print(divide_numbers(10, 0))Execution completed.
The result is 5.0
Execution completed.
Error: Cannot divide by zero!段階的な実装
- ユーザーフォームの送信を検証する
- ネットワークリクエストがタイムアウト時にクラッシュしないようにする
- Finally ブロックでデータベース接続を安全に閉じる
よくある質問
「上げる」というキーワードは何ですか?
raise キーワードは、意図的に例外を発生させるために使用されます。どのような種類のエラーを発生させるか、およびユーザーに出力するテキストを定義できます。
関連トピック
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python でリストを並べ替える方法
sort() メソッドとsorted() 関数を使用して、Python でリストを並べ替える方法を学びます。カスタムキーの並べ替えと逆順の例をご覧ください。
Python 組み込み例外およびエラー タイプのチートシート
一般的な Python エラー タイプのリファレンス ガイド。 ValueError、TypeError、IndexError、KeyError をデバッグし、例外を発生させる方法を学びます。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。