python_异常处理(try except)
1,异常捕获
异常捕获的字段为python解释报错的最后一行的第一个单词。使用try方法,程序报错时,可以使用except方法匹配报错的异常关键字,继续except下方定义的代码,从而保证代码可以正常运行,保证代码的稳定性。

# 定义一个计算器 def compute(): num = int(input("请输入被除的值:")) result = 8 / num print(result) # 测试方法,输入的数字为0 程序会出现报错 捕获报错异常 try: print(compute()) except ZeroDivisionError: # ZeroDivisionError 为解释器报错时 最后一行的第一个单词 可以被解释器捕获 print("0不能充当分母,请重新输入")
2,整套异常处理的流程
# 定义一个计算器 def compute(): num = int(input("请输入被除的值:")) result = 8 / num return result # 测试方法,输入的数字为0 程序会出现报错 捕获报错异常 try: print(compute()) except ZeroDivisionError: # ZeroDivisionError 为解释器报错时 最后一行的第一个单词 可以被解释器捕获 print("0不能充当分母,请重新输入") except ValueError: # ValueError 为解释器另外一种异常错误,匹配到该异常,执行该except下方的代码 print("输入的值错误,请重新输入") except (ZeroDivisionError,ValueError): # 对多个异常进行处理。 pass else: # 无异常时,执行 pass finally: # 有无异常,都会执行的代码 print("*********")
3, 自定义异常
案例:
密码输入长度匹配,长度必须大于8, 小于 10。否则输出“密码长度不正确”
def passwd(): passwd_tmp = input("请输入密码,长度必须大于8位,小于13位:") if len(passwd_tmp) > 8: if len(passwd_tmp) < 13: return passwd_tmp print("密码长度不对") ex = Exception("密码长度不正确,请重新输入") # 定义ex变量,保存异常输出提示 raise ex # raise方法跑出变量ex保存的异常输入提示 print(passwd())
如果长度不符合,异常输入如下:
C:/Users/yc/PycharmProjects/yc-study/对象/异常处理.py 请输入密码,长度必须大于8位,小于13位:1 密码长度不对 Traceback (most recent call last): File "C:\Users\yc\PycharmProjects\yc-study\对象\异常处理.py", line 34, in <module> print(passwd()) File "C:\Users\yc\PycharmProjects\yc-study\对象\异常处理.py", line 32, in passwd raise ex # raise方法抛出变量ex保存的异常输入提示 Exception: 密码长度不正确,请重新输入 Process finished with exit code 1

浙公网安备 33010602011771号