前言
本节介绍异常的处理方式
正文
根据输入参数拦截错误示例
import math
for i in range(10):
try:
inputNumber = input("write a number:")
if inputNumber == 'q':
break
result = 1/math.log(float(inputNumber))
print(result)
#输入0报错
except ValueError:
print("ValueError: input must > 0")
#输入1报错
except ZeroDivisionError:
print("ZeroDivisionError: input must != 0")
except Exception:
print("Other Exception!")
write a number:
ValueError: input must > 0
自定义异常处理类
class ChenError(ValueError):
pass
pwdList = ['chen', 'mo']
while True:
curInput = input("请输入密码:")
if curInput not in pwdList:
raise ChenError("Invalid Paasword:%s" %curInput)
请输入密码:chen2
---------------------------------------------------------------------------
ChenError Traceback (most recent call last)
<ipython-input-2-2e308f283f4f> in <module>
5 curInput = input("请输入密码:")
6 if curInput not in pwdList:
----> 7 raise ChenError("Invalid Paasword:%s" %curInput)
ChenError: Invalid Paasword:chen2
finally模块必被执行,与Java中作用一致
try:
1/0
except:
print("except!")
finally:
print("finally!")
except!
finally!