1.python异常:
SyntaxError
:语法错误, 通常是代码书写不正确.
NameError
:名称错误, 尝试访问不存在的变量或函数.
TypeError
:类型错误, 操作或函数应用于不兼容的数据类型.
ValueError
:值错误, 当函数接收到不合法的值时引发.
ZeroDivisionError
:零除错误, 尝试将一个数除以零.
Exception
:所有内置异常类的基类, 即其他所有的异常都是基于它的
2.python的异常捕获
def num(a, b):
try:
c = a / b
print('result = ', c)
except ZeroDivisionError:
print('0不能作为除数')
num(1, 2)
num(10, 0)
捕获多个异常:
也可以分开写多个异常.
try:
except (1Error, 2Error):
捕获所有异常:
try:
except Exception:
获取异常信息:
except ExceptionType as e:
else块:
是try-except的可选部分,没有出现异常则会执行.
finally块:
无论是否发生异常,都会执行.可以进行资源回收.
try-finally不会被return中断
return的堆栈
保持finally代码的正确性
raise:
主动抛出异常
def check_name(usename):
"""
长度大于5
不能使用'root','adder'
只能包含字母和字符
:param uesname:
:return:
"""
if usename in ['root','adder']:
raise ValueError('不能包含用户信息')
if len(usename) < 5:
raise ValueError('长度不能小于5')
if not usename.isalpha():
raise ValueError('只能包含字符')
print(f'{usename}校验成功')
try:
usename = input('请输入用户名:')
check_name(usename)
except ValueError as e:
print(e)