#异常
#检测异常
try:
...#检测范围
except OSError as reason:
#出现异常后的处理代码
print('文件出错\n 出错的原因是:' + str(reason))
except TypeError as reason:
print('类型出错\n 出错的原因是:' + str(reason))
except ValueError as reason:
print('值出错\n 出错的原因是:' + str(reason))
finally:
#无论如何都会被执行的代码
...
#引出一个异常
>>> raise ZeroDivisionError(除数为零的异常)
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
raise ZeroDivisionError(除数为零的异常)
NameError: name '除数为零的异常' is not defined
-> try:
...
except:
print("出错了") #这样做不推荐,有的出错类型不会显示 例如ctrl+c
-> try:
...
except(OSError,TypeError):
print("出错了")
--------------------------------------------------------------------
#丰富的else语句
1.和 while 语句配合
def showMaxFactor(num):
count = num //2
while count > 1:
if num % count == 0:
print("%d最大的约数是%d" % (num,count))
break
count -= 1
else:
print("%d是素数!" % num)
num = int(input('请输入一个数:'))
showMaxFactor(num)
2.和 for 语句配合(和while语句相同)
3.和 try except 语句配合
try:
int('abc')
except ValueError as reason:
print("出错啦:" + str(reason))
else:
print("没有任何异常")
#简洁的with语句
try:
with = open('data.txt',w) as f:
for each_line in f:
print(each_line)
except OSError as reason:
print('出错:' + str(reason))
with 会自动调用f.close()语句
--------------------------------------------------------------------
#标准异常总结
ArithmeticError 所有数值计算错误的基类
AssertionError 断言语句(assert)失败
AttributeError 属性错误,特性引用和赋值失败时会引发属性错误,尝试访问未知的对象属性
BaseException 所有异常的基类
EOFError 用户输入文件末尾标志EOF(Ctrl+d)
DeprecationWarning 关于被弃用的特征的警告
Exception:所有异常的基类,因为所有python异常类都是基类Exception的其中一员,异常都是从基类Exception继承的,并且都在exceptions模块中定义。
EnvironmentError 操作系统错误的基类
FloatingPointError 浮点计算错误
FutureWarning 关于构造将来语义会有改变的警告
GeneratorExit generator.close()方法被调用的时候,生成器(generator)发生异常来通知退出
ImportError 导入模块失败的时候
IndexError 索引错误,使用的索引不存在,索引超出序列的范围
IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误
KeyError 字典中查找一个不存在的关键字时引发的关键字错误
KeyboardInterrupt 用户输入中断键(Ctrl+c)
LookupError 无效数据查询的基类
MemoryError 内存溢出(可通过删除对象释放内存,对于Python 解释器不是致命的)
NameError 尝试访问一个不存在(未申明)的变量
NotImplementedError 尚未实现的方法
OSError 操作系统产生的异常(例如打开一个不存在的文件)
OverflowError 数值运算超出最大限制
OverflowWarning 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning 关于特性将会被废弃的警告
ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError 一般的运行时错误
RuntimeWarning 可疑的运行时行为(runtime behavior)的警告
StopIteration 迭代器没有更多的值
SyntaxError Python的语法错误,代码形式错误
SyntaxWarning 可疑的语法的警告
StandardError 所有的内建标准异常的基类
IndentationError 缩进错误
TabError Tab和空格混合使用
SystemError Python编译器系统错误
SystemExit Python编译器进程被关闭
TypeError 类型错误,内建操作或是函数应于在了错误类型的对象时会引发类型错误
UserWarning 用户代码生成的警告
UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
UnicodeError Unicode相关的错误(ValueError的子类)
UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
ValueError 值错误,传给对象的参数类型不正确
WindowsError 系统调用失败
Warning 警告的基类
ZeroDivisionError 除数为零,在用除法操作时,第二个参数为0时引发了该错误
网友评论