Python基礎研究ノート09-異常

1.異常

構文:
try:
エラー
引き起こす可能性のあるコード。ただし
、例外が発生した場合に実行されるコード

1.1例外をキャッチする
注:
実行しようとしているコードの例外タイプが、キャッチする例外タイプと一致しない場合、例外をキャッチすることはできません。
通常、実行するコードは1行だけ試行されます。

1.2指定された例外をキャッチする
構文:
try:例外タイプ以外
のエラー
引き起こす可能性のある
コード例外が発生した場合に実行されるコード

1.3指定された複数の例外をキャプチャし、例外の説明情報をキャプチャし、すべての例外をキャプチャします。
複数の例外をキャプチャする場合、例外の後にキャプチャする例外タイプの名前を入力して、タプルに書き込むことができます。

try:
    print(1/0)
except(NameError,ZeroDivisionError) as result:
    print(result)		# division by zero

すべての例外をキャッチします。

try:
    print(num)
except Exception as result:
    print(result)		# name 'num' is not defined

1.4異常なelseelse
は、異常な実行コードがない場合を意味します

num = 0
try:
    print(num)
except Exception as result:
    print(result)
else:
    print("无异常")

1.5
例外のfinallyfinallyは、例外がであるかどうかに関係なく、実行されるコードを示します。

num = 0
try:
    print(num)		# 可能发生异常
except Exception as result:
    print(result)	# 如果出现异常
else:
    print("无异常")	# 无异常
finally:			
    print("continue")	# 无论异常都执行

1.6カスタム例外

# 自定义异常类
class ShortInputError(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("请输入密码")
        if len(con) < 3:	# 异常产生条件
            raise ShortInputError(len(con),3)       # 抛出异常
    except Exception as result:     # 捕获异常
        print(result)
    else:
        print("密码输入完成")

おすすめ

転載: blog.csdn.net/qq_44708714/article/details/105052271