| 例外名 | 説明 |
|---|---|
| BaseException | すべての例外の基本クラス |
| SystemExit | 終了するパーサーリクエスト |
| 例外 | 一般的なエラーの基本クラス |
| StopIteration | Iteratorに値がありません |
| ArithmeticError | すべての数値計算エラーの基本クラス |
| FloatingPointError | 浮動小数点計算エラー |
| OverflowError | 数値演算が上限を超えています |
| AttributeError | オブジェクトにはこの属性がありません |
| FileNotFoundError | ファイルが見つかりません |
| ZeroDivisionError | 分割(またはモジュロ)ゼロ(すべてのデータタイプ) |
| ....... | ...... |
文法
try:
エラーが発生する可能性のあるコード
except:
例外が発生した場合に実行されるコード
注意:
指定された複数の例外をキャッチする
複数の例外をキャッチする場合は、例外の後にキャッチする例外タイプの名前を入れて、タプルに書き込むことができます。
try:。print(1/0)(NameError、ZeroDivisionError)を除く:print( 'エラーがあります')
例外の説明情報をキャプチャする
try: print(num) except (NameError, ZeroDivisionError) as result: print(result)
すべての例外をキャッチ
例外は、すべてのプログラム例外クラスの親クラスです。
try: print(num) except Exception as result: print(result)
その他異常
それ以外の場合は、例外がない場合に実行されるコードを意味します
try:print(1)(例外としての結果を除く):print(result)else:print( '私はelseであり、例外がないときに実行されるコード')
ついに異常
最後に、ファイルを閉じるなどの異常かどうかに関係なく実行されるコードを表します。
try:f = open( 'test.txt'、 'r')ただし例外は結果として:f = open( 'test.txt'、 'w')else:print( '例外なし、本当に幸せ') 。閉じる()
異常な配達を経験する
import time
try:
f =open('test.txt')try:while True:
content = f.readline()iflen(content)==0:break
time.sleep(2)print(content)
except:
# ファイルの読み取り中に例外が発生した場合、それはキャッチされます
# たとえば、ctrlを押します+c
print('データ読み取りの予期しない終了')finally:
f.close()print('ファイルを閉じる')
except:print("そのようなファイルはありません")
Pythonでは、カスタム例外をスローするための構文は、例外クラスオブジェクトを発生させることです。
# カスタム例外クラス、例外を継承
classShortInputError(Exception):
def __init__(self, length, min_len):
self.length = length
self.min_len = min_len
# スローされた例外の説明を設定します
def __str__(self):return f'入力した長さは{self.length},よりは少なくない{self.min_len}キャラクター'
def main():try:
con =input('パスワードを入力してください:')iflen(con)<3:
raise ShortInputError(len(con),3)
except Exception as result:print(result)else:print('パスワードが入力されました')main()