一、捕获异常
1.说明
通过语法来获取到解释器抛出的异常
2. 什么时候需要捕获?
当我们不确定语句是否在执行的时候会有错误的时候
3. 基本的语法:
try:
代码块1
except:
代码块2
4.例子
try:
num = int(input("请输入一个整数:"))
except:
print("请输入正确的整数")
print("*"*50)
二、根据错误的类型捕获异常
1.语法
try:
代码块1
except 错误类型1 (as 重命名1) :
代码块2
except 错误类型2 (as 重命名2):
代码块3
......
注意:小括号里面的语句可以省略,一般情况下为了对错误类型的一系列的操作才会用as语句
2.例子
try:
num = int(input("请输入一个整数:"))
result = 8 / num
print(result)
except ValueError:
print("num必须是整数")
except Exception as results:
print("未知错误 %s" %(results))
三、异常捕获完整语法
1.语法
try:
代码块1
except 错误类型1 (as 重命名1) :
代码块2
except 错误类型2 (as 重命名2):
代码块3
......
else:
#没有异常的时候执行下面的代码块
代码块
finally:
#无论是否有异常都会执行,下面的代码块
代码块
2.相关的图示
3.例子
try:
num = int(input("请输入一个整数:"))
result = 8 / num
print(result)
except ValueError:
print("num必须是整数")
except Exception as results:
print("未知错误 %s" %(results))
else:
print("尝试成功!!!")
finally:
print("无论成功与否都会执行的代码是我!!!")
print("*"*50)
四、异常的传递
当函数/方法在执行的时候出现异常,会将异常传递给函数/方法的调用的一方如果传递到主程序,仍然没有处理,程序才会被抛出异常和终止
五、主动抛出异常
1.语法
Python 中提供了一个 Exception 异常类
在开发时,如果满足特定业务需求时,希望抛出异常,可以:
1.创建一个Exception类的对象
2.使用raise关键字抛出异常对象
2.例子
def input_password():
# 提示用户输入密码
pwd = input("请输入密码:")
# 判断密码的长度 >= 8,返回用户输入的密码
if len(pwd) >= 8:
return pwd
# 如果 < 8 主动抛出异常
print("主动抛出异常")
# 创建异常对象
ex = Exception("密码长度不够") #当发现此异常时给出的提示是密码长度不够
# 主动抛出异常
raise ex
# 提示用户输入密码
try:
print(input_password())
except Exception as result:
print(result)