工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python例外処理をマスター:try、except、finally、raiseの効果的な活用

Python例外処理をマスター:try、except、finally、raiseの効果的な活用

例外はプログラム実行時に発生するエラーです。しかしプログラム実行中、Pythonは自動的に例外を生成し、プログラムのクラッシュを防ぐためにハンドリングする必要があります。Pythonでは、エラー時に例外が自動的に発生するか、コードによって発生・捕捉されます。

例外は、イベントが発生しうるものの、そのタイプのイベントは頻繁には起きないことを示します。メソッドが例外を処理できない場合、呼び出し元の関数に投げられます。最終的にメイン関数の外に例外が投げられると、プログラムは突然終了します。

このPython例外処理チュートリアルで学べること:

例外の一般的な例

なぜ例外を使うべきか?

Pythonで例外を使う理由:

例外のルール

Python例外処理の重要なルール:

Python例外処理メカニズム

例外処理は以下の5つのキーワードで管理:

  1. try
  2. except(catchに相当)
  3. finally
  4. raise(throwに相当)

Python Try文

try文はキーワードtry、コロン(:)、例外が発生する可能性のあるコードスイートで構成され、1つ以上の節を持ちます。

try文実行中に例外が発生しなければ、インタプリタはそのtry文の例外ハンドラを無視します。

tryスイートで例外が発生した場合、tryスイートは終了し、プログラム制御はtryスイートに続く一致するexceptハンドラに移ります。

構文:
try:
    statement(s)

Except文

exceptブロックは一度に1つの引数を取り、捕捉する可能性のある例外の型です。これらの引数は特定の例外型から、すべての例外を捕捉する包括的なカテゴリまで多岐にわたります。

exceptブロックのルール:

例

try:
    # 処理
except ArrayIndexOutOfBoundsException as e:
    print("最初に捕捉:", e)
except IOError as e:
    print("2番目に捕捉:", e)

Python Finally文

finallyブロックは例外が投げられようが投げられまいが常に実行されます。finallyキーワードでtry-exceptブロックに続くコードブロックを作成できます。

finally節はオプションです。すべての条件下で実行されるべきクリーンアップアクションを定義する目的があります。

try:
    raise KeyboardInterrupt
finally:
    print('welcome, world!')
# 出力:
# Welcome, world!
# KeyboardInterrupt

finally節はtry文の前に実行されます。

Python Raise文

raise文は例外オブジェクトを初期化する引数を指定します。例外名の後にカンマが続き、引数または引数のタプルが続きます。

構文:

raise [Exception [, args [, traceback]]]

この構文では引数はオプションで、実行時には例外引数の値は常にNoneです。

例

Python例外は文字列、クラス、数値、オブジェクトなど任意の値になりえます。Pythonコアで発生するほとんどの例外はクラスで、引数はそのクラスのインスタンスです。

重要なPythonエラー

エラータイプ説明
ArithmeticErrorすべての算術例外の基底クラス。算術演算のエラーで発生。
ImportError存在しないモジュールをインポートしようとしたときに発生。モジュール名のタイポや標準パスにモジュールがない場合に起こる。
IndexError範囲外のシーケンスを参照しようとしたときに発生。
KeyError辞書で特定のキーが見つからないときに発生。
NameErrorローカルまたはグローバル名前空間に存在しない名前がコードで参照されたときに発生。
ValueError関数や組み込み操作が、正しい型だが適切でない値の引数を受け取ったときに発生。
EOFError組み込み関数(input()やraw_input())がデータを読まずにEOF条件に達したときに発生。
ZeroDivisionErrorすべての数値型でゼロ除算またはモジュロ演算が行われたときに発生。
IOError入出力操作が失敗したときに発生。
SyntaxErrorPython構文にエラーがあるときに発生。
IndentationErrorインデントが適切に定義されていないときに発生。

その他の重要なPython例外

例外説明
ArithmeticErrorゼロ除算などの算術エラー
IndexError配列インデックスが範囲外
TypeError互換性のない型への代入
AttributeError属性参照/代入失敗
KeyError辞書キーが見つからない
ValueError不適切な値の引数
RuntimeErrorその他の実行時エラー

エラー vs 例外

エラー例外
Pythonのすべてのエラーは未チェック型例外にはチェック型と未チェック型の両方がある
コンパイラ未知の実行時エラーtry-exceptブロックで処理して回復可能
主にアプリケーション実行環境が原因アプリケーション自体が原因
例: OutOfMemoryError例: チェック例外、SQL例外、NullPointerException等

まとめ

Python

  1. C++例外処理をマスター:try、catch、throwの実践例
  2. Python データ型マスター: 実践ガイド
  3. Python 演算子完全マスター: 包括的ガイド
  4. Python pass文完全マスター: 実践ガイド
  5. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  6. Python辞書完全ガイド:作成、操作、高度なテクニック
  7. Python例外処理マスター:try、except、else、finallyを徹底解説
  8. Pythonイテレータ完全ガイド:仕組みと自作方法
  9. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  10. Java例外ハンドリング完全攻略:try-catch、finally、throw、throws
  11. Java例外ハンドリング実践:try-catch-finallyとリソース管理