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

Pythonエラーと組み込み例外をマスターする

Pythonエラーと組み込み例外

Pythonが問題をどう通知するか、構文エラーと実行時エラーの違い、組み込み例外を自信を持って扱う方法を学びます。

動画:Python例外処理

Pythonプログラムを実行すると、インタプリタは未処理のエラーに遭遇すると即座に実行を停止します。これらのエラーは大きく2つのカテゴリに分類されます:

  1. 構文エラー — パース時に検出される問題
  2. 論理エラー(例外) — コード実行中に発生する問題

Python構文エラー

ソースコードがPythonの文法規則に違反すると構文エラーが発生します。インタプリタはエラーメッセージのキャレット(^)で正確な位置を示します。

> >>> if a < 3
File "<interactive input>", line 1
if a < 3
^
SyntaxError: invalid syntax

この例ではif文の後のコロン(:)不足がSyntaxErrorを引き起こします。

Python論理エラー(例外)

論理エラーまたは例外は、コードが構文チェックをパスした後に表面化します。一般的な例:

例外が発生するとPythonは例外オブジェクトを作成。未処理のままならトレースバックが表示され、コールスタックと失敗理由が示されます。

> >>> 1 / 0
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero
> >>> open("imaginary.txt")
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'

Python組み込み例外

Pythonインタプリタは様々な組み込み例外を発生させ、異なる失敗状況を通知します。以下で一覧取得可能:

print(dir(locals()['__builtins__']))

頻繁に遭遇する組み込み例外と発生条件の簡潔なリファレンス:

例外エラーの原因
AssertionErrorassert文が失敗したとき
AttributeError属性代入または参照が失敗したとき
EOFErrorinput()関数がEOF条件に達したとき
FloatingPointError浮動小数点演算が失敗したとき
GeneratorExitジェネレータのclose()メソッドが呼ばれたとき
ImportErrorインポートモジュールが見つからないとき
IndexErrorシーケンスインデックスが範囲外のとき
KeyError辞書にキーがないとき
KeyboardInterruptユーザーがCtrl+CまたはDeleteを押したとき
MemoryError操作が利用可能メモリを超えたとき
NameError変数がローカル/グローバルスコープで見つからないとき
NotImplementedError実装を持たない抽象メソッドで発生
OSErrorシステム関連エラー(ファイルI/Oなど)
OverflowError算術結果が表現可能範囲を超えたとき
ReferenceError弱参照がGC済みオブジェクトをプロキシするとき
RuntimeError他のカテゴリに当てはまらないエラー
StopIterationnext()でイテレータが尽きたとき
SyntaxErrorパーサーが無効な構文を検出したとき
IndentationErrorインデントが不正なとき
TabErrorインデントでタブとスペースが混在するとき
SystemErrorインタプリタが内部エラーを検出したとき
SystemExitsys.exit()で発生
TypeError不適切な型のオブジェクトを操作/関数が受け取ったとき
UnboundLocalErrorローカル変数が代入前に参照されたとき
UnicodeErrorUnicode関連のエンコード/デコードエラー
UnicodeEncodeErrorUnicodeエンコードエラー
UnicodeDecodeErrorUnicodeデコードエラー
UnicodeTranslateErrorUnicode翻訳エラー
ValueError正しい型だが不適切な値の引数を関数が受け取ったとき
ZeroDivisionErrorゼロで除算またはモジュロ演算したとき

より細かい制御が必要な場合、Pythonではカスタム例外クラスを定義可能です。詳細はPythonユーザー定義例外を参照。

例外処理はtry、except、finallyブロックで直感的に行えます。詳細についてはPython try, except, finally文を参照。

Python

  1. Python キーワードと識別子: 予約語と命名規則をマスター
  2. Python 文・インデント・コメント: 明確なガイド
  3. Python 変数・定数・リテラル: 包括的ガイド
  4. Python 型変換とキャスト: 包括的ガイド
  5. Python I/Oとモジュールインポート完全マスター: 実践ガイド
  6. Python グローバル・ローカル・非ローカル変数を理解する
  7. Pythonにおける数値、型変換、数学のマスター
  8. Pythonディレクトリ・ファイル操作マスター:作成、移動、一覧、リネーム、削除
  9. Pythonカスタム例外マスター:実践ガイド
  10. Pythonで現在の日付と時刻を取得する実践ガイド
  11. Java throw vs throws:実践例でマスターする例外ハンドリング