为了保证程序执行的完整性,需要对程序中出现的异常进行处理,以保证程序的正常执行。
错误类型:
当执行代码时,报错信息得到的第一个关键字就是错误类型,例如
a = int(input("请输入一个整数:"))
请输入一个整数:a
Traceback (most recent call last):
File "/home/qjj/PycharmProjects/pyProject/test.py", line 251, in <module>
a = int(input("请输入一个整数:"))
ValueError: invalid literal for int() with base 10: 'a'
捕获异常:
针对不同类型的异常错误,进行捕获,不同类型可以依次捕获,同时可以捕获未知错误的异常.
try:
a = int(input("请输入一个整数:"))
except ValueError:
print("请输入正确的整数")
except Exception as result:
print("未知错误 {}".format(result))
异常捕获的完整语法:
当有异常则走except抛出异常,当没有异常正常执行,则走else,不管有没有异常,都会执行finnally代码
try:
a = int(input("请输入一个整数:"))
except ValueError:
print("请输入正确的整数")
except Exception as result:
print("未知错误 {}".format(result))
else:
pass
finally:
pass
异常的传递:
如果每一个函数方法都去进行异常的处理,对于开发来说太过于冗余,所以根据异常的传递,简单来说,其他的函数的错误,只需要主程序中进行异常的处理即可.
主动抛出异常:
通过调用Exception类主动抛出异常
def input_passward():
pwd = input("请输入密码")
if len(pwd) >= 8:
return pwd
# 主动抛出异常
ex = Exception("密码长度不够")
raise ex
try:
print(input_passward())
except Exception as result:
print(result)