python网络提示_Python网络和Web(1)——异常处理

复习描述符 首先是个新式类,至少实现 get  set  del 中一个,

_get__调用的时候触发      __set__ 赋值的时候触发   __delete__采用del删除属性的时候触发

描述符是操作别的类的属性的,如果是自己生成一个实例,并不会触发自己的这些函数,在其他类中定义个属性=描述符

描述符是实现Python各种魔法方法的底层逻辑

异常处理

错误和异常

错误分两种:1 语法错误  2 逻辑错误 比如除0  类型错误

异常:异常是程序运行发生错误的时候发出的信号,错误分三部分表示出来

异常类型:

BaseException 所有异常的基类

SystemExit解释器请求退出

KeyboardInterrupt用户中断执行(通常是输入^C)

Exception常规错误的基类

StopIteration迭代器没有更多的值

GeneratorExit生成器(generator)发生异常来通知退出

StandardError所有的内建标准异常的基类

ArithmeticError所有数值计算错误的基类

FloatingPointError浮点计算错误

OverflowError数值运算超出最大限制

ZeroDivisionError除(或取模)零 (所有数据类型)

AssertionError断言语句失败

AttributeError对象没有这个属性

EOFError没有内建输入,到达EOF 标记

EnvironmentError操作系统错误的基类

IOError输入/输出操作失败

OSError操作系统错误

WindowsError系统调用失败

ImportError导入模块/对象失败

LookupError无效数据查询的基类

IndexError序列中没有此索引(index)

KeyError映射中没有这个键

MemoryError内存溢出错误(对于Python 解释器不是致命的)

NameError未声明/初始化对象 (没有属性)

UnboundLocalError访问未初始化的本地变量

ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象

RuntimeError一般的运行时错误

NotImplementedError尚未实现的方法

SyntaxErrorPython 语法错误

IndentationError缩进错误

TabErrorTab 和空格混用

SystemError一般的解释器系统错误

TypeError对类型无效的操作

ValueError传入无效的参数

UnicodeErrorUnicode 相关的错误

UnicodeDecodeErrorUnicode 解码时的错误

UnicodeEncodeErrorUnicode 编码时错误

UnicodeTranslateErrorUnicode 转换时错误

Warning警告的基类

DeprecationWarning关于被弃用的特征的警告

FutureWarning关于构造将来语义会有改变的警告

OverflowWarning旧的关于自动提升为长整型(long)的警告

PendingDeprecationWarning关于特性将会被废弃的警告

RuntimeWarning可疑的运行时行为(runtime behavior)的警告

SyntaxWarning可疑的语法的警告

UserWarning用户代码生成的警告

解释器执行程序,检测到错误的时候,触发异常,异常触发后如果没被处理的话,程序就会停止,后面代码不会执行,所以需要一个异常处理机制来增强程序的健壮性与容错性

语法错误跟异常处理无关,必须在程序运行前就修正,用if来处理各种逻辑错误,写的与自己的主要目标偏离,虽然可以解决异常但是可读性差,逻辑偏离混乱,所以引出了异常类 处理机制

try:  except ValueError as e: 异常处理 异常的内容赋值给e

try 检查的代码块

except 捕捉 指定异常 相当于另一个处理分支,触发的逻辑,可以使程序不崩溃

多分支异常,可以有多个except 来捕捉特定的异常,对于不同的异常有不同的处理逻辑

万能异常处理,except Exception as e:  无论什么异常都用相同的逻辑来处理

try   检测代码块

except     捕捉异常

else   没异常则执行

finally  无论有没异常都会最后执行,通常用于 文件关闭等清理操作

主动触发异常 raise

自定义异常的类,必须继承BaseException,所以异常都是继承来的

assert  断言  就是插入一个判断的结果,可以检测程序进行到中间是否符合预期。如果不是的话就报错了,调试程序非常重要的测试

什么时候用异常处理:try应该尽量少用,因为他是附加的异常处理逻辑,与主逻辑没有关系,如果加多了会导致代码可读性差,自由当异常无法预知无法控制的情况下使用比较好。其他的逻辑错误应该尽量修正

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值