1.捕获所有类型异常
即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
大多数的异常都不会被程序处理,都以错误信息的形式展现在后台
"""
异常机制
异常:不正常事件
"""
try:
num = int(input("请输入一个数字:"))
except:
print("如果出现异常就执行这里的代码")
2.捕获具体异常
try:
num = int(input("请输入一个数字:"))
# print(num/0)
open("xx.txt","r")
except (ZeroDivisionError,ValueError):
print("如果出现ZeroDivisionError,或者ValueError执行这里的代码")
3.捕获未知异常
try:
num = int(input("请输入一个数字:"))
# print(num/0)
open("xx.txt","r")
except (ZeroDivisionError,ValueError):
print("如果出现ZeroDivisionError,或者ValueError执行这里的代码")
except Exception as ret:
print("未知错误{}".format(ret))
4.捕获异常完整版
try:
num = int(input("请输入一个数字:"))
# print(num/0)
# open("xx.txt","r")
except (ZeroDivisionError,ValueError):
print("如果出现ZeroDivisionError,或者ValueError执行这里的代码")
except Exception as ret:
print("未知错误{}".format(ret))
else:
print("如果else和try,except联合使用,没有异常的情况下才会执行!")
finally:
print("finally不管你有没有异常我都执行")
5.异常的传递
def test1():
return int(input("请输入数字:"))
def test2():
return test1()
try:
print(test2())
except Exception as ret:
print("未知异常:{}".format(ret))
6.自定义异常
def input_password():
# 提示用户输入密码
pwd = input("请输入密码:")
# 判断密码长度
if len(pwd) >= 8:
return pwd
print("主动抛出异常")
ex = Exception("密码长度不够!")
raise ex
try:
print('返回值:',input_password())
except Exception as ret:
print('错误提示:',ret)