python异常处理

异常

广义上的错误分为错误和异常
错误指的是可以人为避免
异常是指在语法逻辑正确的前提下,出现问题
在python里,异常是一个类,可以处理和使用

#异常的分类

  • BaseException # 所有异常的父类
    • SystemExit # 由sys.exit()抛出的异常
    • KeyBoardInterrupt # 通常由ctrl+c或者Delete抛出的异常
    • GeneratorExit # 当生成器被关闭时抛出的异常
    • Exception #
      • StopIteration # 迭代结束异常
      • StopAsyncIteration # 由异步迭代的__anext__()抛出的异常
      • ArithmeticError # 各种算数错误引起的异常
        • FloatingPointError # 浮点数操作错误
        • OverflowError # 结果超出范围
        • ZeroDivisionError # 0为除数异常
    • AssertionError # assert错误异常
    • AttributeError # 属性引用异常
    • BufferError # 缓存错误
    • EOFError # 读不到数据
    • ImportError # import错误
      • ModuleNotFoundError # 找不多模块
    • LookupError # 由索引和key值引起的异常
      • IndexError # 索引错误
      • KeyError # 字典key值错误
    • MemortError # 内存溢出异常
    • NameError # 本地和全局找不到变量名
      • UnboundLocalError # 局部变量没有赋值
    • OSError # system错误
      • BlockingIOError # 调用阻塞异常错误
      • ChildProcessError # 子进程
      • ConnectionError # 连接
        • BrokenPipeError # 管道读写异常
        • ConnectionAbortedError # 连接失败
        • ConnectionRefusedError # 连接拒绝
        • ConnectionResetError # 连接重置
      • FileExistsError # 创建文件和文件夹错误
      • FileNotFoundError # 文件未找到
      • InterruptedError # 中断错误
      • IsADirectoryError # 文件操作用在文件夹上
      • NotADirectoryError # 不是文件夹
      • PermissionError # 权限
      • ProcessLookupError # 进程不存在
      • TimeoutError # 超时
    • ReferenceError # 引用异常
    • RuntimeError #
      • NotImplementedError # 运行抽象方法
      • RecursionError # 超出最大递归深度
    • SyntaxError # 语法错误
      • IndentationError # 缩进错误
        • TabError # tab错误
    • SystemError # 解释器中断
    • TypeError # 类型错误
    • ValueError # 赋值错误
      • UnicodeError #
        • UnicodeEncodeError # unicode编码错误
        • UnicodeDecodeError # unicode解码错误
        • UnicodeTranslateError # unicode转换错误
    • Warning #
      • DeprecationWarning # 操作不赞成警告
      • PendingDeprecationWarning # 表明此操作将来会被弃用
      • UserWarning # 用于用户生成警告
      • SyntaxWarning # 语法可疑警告
      • RuntimeWarning # 运行警告
      • FutureWarning # 将会改变警告
      • ImportWarning # 导入警告
      • UnicodeWarning # unicode相关警告
      • BytesWarning # 字节相关警告
      • ResourceWarning # 资源使用情况警告

异常处理

不能保证程序永远正确运行
但是,必须保证程序在最坏的情况下得到的问题被妥善处理
python的异常处理模块全部语法为:

	try:
                        尝试实现某个操作,
		如果没出现异常,任务就可以完成
		如果出现异常,将异常从当前代码块扔出去尝试解决异常
	except 异常类型1:
		解决方案1:用于尝试在此处处理异常解决问题
	except 异常类型2:
		解决方案2:用于尝试在此处处理异常解决问题
	except (异常类型1,异常类型2....)
		解决方案:针对多个异常使用相同的处理方式
	except :			
	          解决方案:所有异常的解决方案
	else:
	          如果没有出现任何异常,将会执行此处代码
	finally:
		管你有没有异常都要执行的代码
  • 流程
    1.执行try下面的语句
    2.如果出现异常,则在except语句里查找对应异常病进行处理
    3.如果没有出现异常,则执行else语句内容
    4.最后,不管是否出现异常,则都要执行finally语句
  • 除except(最少一个)以外,else和fianlly可选(可以没有)
  • 用于尝试在此处处理异常解决问题

用户手动引发异常

-当某些情况下,用户希望自己引发一个异常的时候,可以使用raise关键字来引发异常
-注意raise使用语法,raise后面跟ErrorClassName

#关于自定义的异常
-只要是raise异常,则推荐自定义异常
-在自定义异常的时候,一般包含以下内容:
-自定义发生异常的异常代码
-自定义发生异常后的问题提示
-自定义发生异常的行数
-最终的目的是,一旦发生异常,方便程序员快速定位错误现场

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值