异常:在运行代码过程中,遇到的所有错误 通常带Error字样
异常处理:我们对代码中所有可能会出现的异常,进行处理
(1)初级异常处理:a.处理某个错误(e.g:FileExistsError) b.处理某种类型的错误 (e.g:OSError) c.只要有错误就进行抓取(e.g:Exception)
例1:
import os try: # 监控可能出错的地方 os.mkdir(‘do_file‘) # FileExistError 属于 OSError except FileExistsError: # 错误处理 print("改文件已经存在") print(‘666‘)
例2:将错误写入error.txt文件
import os try: # 监控可能出错的地方 os.rmdir(‘Kite‘) # FileExistError 属于 OSError except OSError as e: # 错误处理 print("错误是:{0}".format(e)) file = open(r"D:\Test3\base_python\Kite\error.txt",‘a+‘,encoding=‘utf-8‘) file.write(str(e)) file.close()#关闭文件
例3:
import os try: os.rmdir(‘Kite‘) # print(‘哈哈哈哈哈哈‘) # 等效于else里的输出 except OSError as e: print("错误是:{0}".format(e)) else: print(‘哈哈哈哈哈哈‘)
常见的异常处理方式:
1.try...except Exception as e( 存到变量e里面)... 找错,且处理
2.try......except....finally..... finally的作用:不管有没有犯错都会执行
3.try.....except.....else....(不常用)跟try下面的代码是一起的,如果try下面的代码没有犯错,else就会执行,反之则不会执行
BaseException 所有异常的基类
SystemExit 解释器请求退出
KeyboardInterrupt 用户中断执行
Exception 常规错误的基类
StopIteration 迭代器没有更多的值
GeneratorExit 生成器发生异常来通知退出
StandardError 所有数值计算错误的基类
FloatingPointError 浮点计算错误
OverflowError 数值计算超出最大限制
ZeroDivisionError 除零
AssrttionError 断言语句失败
AttributeError 对象没有这个属性
EOFError 没有内建输入,到达EFO标记
EnvrionmentError 操作系统错误的基类
IOError 输入/输出操作失败
OSError 操作系统错误
WindowsError 系统调用失败
ImportError 导入模块/对象失败
LookupError 无效数据查询的基类
IndexError 序列中没有此索引
原文:https://www.cnblogs.com/kite123/p/11672947.html