异常捕获完整代码
try:
pass
except A:
# 针对错误类型A 代码处理
pass
except B:
# 针对错误类型B 代码处理
pass
except C:
# 针对错误类型C 代码处理
pass
else:
#没有异常才会执行的代码。只有在没有异常时才会执行的代码
pass
finally:
# 无论是否有异常 都会执行这里的代码
pass
异常捕获
try:
num = int(input("输入数字:"))
print(num)
except:
# 如果输入英文控制台 会执行这里。控制台不会报错
print("输入错误")
异常错误类型捕获
针对不能的异常错误,做不同的处理(执行不同的代码)
try:
num = int(input("输入数字:")) # 如果输入英文 会报ValueError
reslut = 8 / num # 如果输入0 会报ZeroDivisionError
print(reslut)
except ValueError:
print("请输入整数")
except ZeroDivisionError:
print("不能为0")
异常传递
def demo1():
return int(input("请输入整数"))
def demo2():
return demo1()
# 在主程序中添加异常处理
if __name__ == "__main__":
try:
demo2()
except Exception as e:
print(f'报错了!{e}')
#输出信息
'''
请输入整数a
报错了!invalid literal for int() with base 10: 'a'
'''
主动抛出异常
def input_pass():
pwd = input("请输入密码")
# 判断密码长度,小于6位数抛出异常
if len(pwd) < 6:
print("主动抛出异常")
# 主动抛出异常
ex = Exception("密码长度不够")
raise ex
return pwd
if __name__ == '__main__':
try:
pwd = input_pass()
print(f"{pwd} 密码输入正确")
except Exception as e:
print(e)
评论 (0)