Python异常 --Python
一、常见的异常类型
- FileNotFoundError:找不到指定文件的异常
- NameError:未声明或者未初始化对象
- BaseException:所有异常的基类
二、异常处理语句
1、try...except...
try:
filename = input('请输入文件名:')
open('%s.txt' % filename)
except FileNotFoundError:
print('%s文件没有找到!' % filename)
2、try...except ...else...(没有异常的时候会执行else中的语句)
try:
filename = input('请输入文件名:')
open('%s.txt' % filename)
except FileNotFoundError:
print('%s文件没有找到!' % filename)
else:
print('正确找到文件!')
3、try...except...finally
try:
filename = input('请输入文件名:')
open('%s.txt' % filename)
except FileNotFoundError:
print('%s文件没有找到!' % filename)
finally:
print('end')
4、try...except...as...
try:
print(car)
except BaseException as msg:
print(msg)
5、raise
前面try语句是在执行过程中捕获代码块中的异常,而raise是通过事先定义一个条件,一旦符合异常条件,就抛出异常。raise只能用于Python标准异常类。
def devision(x, y):
def devision(x, y):
if y == 0:
raise ZeroDivisionError('Zero is not allowed')
return x / y
try:
x = eval(input('x='))
y = eval(input('y='))
print(devision(x, y))
except ZeroDivisionError as msg:
print(msg)
三、Python标准异常类
BaseException:所有异常的基类
SystemExit:解释器请求utuichu
KeyboardInterrupt:用户中断执行(通常是输入^C)
Except:常规错误基类
StopIteration:迭代器没有更多值
GeneratorExit:生成器(generator)发生异常来通知退出
StandardError:所有内建标准异常的基类
ArithmeticError:所有数值计算错误的基类
FloatingPointError:浮点计算错误
OverflowError:数值运算超出最大限制
ZeroDivisionError:除或者取模零