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("密码输入完成")