异常

异常

概述

  异常会导致程序无法正常运行。提前预知异常,并对异常设置相应的操作能够完善代码。

处理异常

try:
    pass
except ValueError as e:
    pass
except Exception as e:
    print(e.args)
    pass

 一、Python内置异常类

BaseException             所有异常的基类         
 +-- SystemExit              解释器请求退出
 +-- KeyboardInterrupt          用户中断执行(通常是输入^C)
 +-- GeneratorExit            生成器(generator)发生异常来通知退出
 +-- Exception               常规错误的基类
      +-- StopIteration              迭代器没有更多值 
      +-- StopAsyncIteration              必须通过异步迭代器对象的__anext__()方法引发以停止迭代
      +-- ArithmeticError                 所有数值计算错误的基类
      |    +-- FloatingPointError             浮点计算错误
      |    +-- OverflowError                  数值运算超出最大限制
      |    +-- ZeroDivisionError              除(或取模)零 (所有数据类型
      +-- AssertionError                  断言语句失败
      +-- AttributeError                  对象没有这个属性
      +-- BufferError                    与缓冲区相关的操作时引发
      +-- EOFError                        没有内建输入,到达EOF 标记
      +-- ImportError                     导入失败
      |    +-- ModuleNotFoundError        找不到模块
      +-- LookupError                     无效数据查询的基类
      |    +-- IndexError                      序列中没有此索引(index)
      |    +-- KeyError                        映射中没有这个键
      +-- MemoryError                     内存溢出错误
      +-- NameError                       未声明、初始化对象
      |    +-- UnboundLocalError              访问未初始化的本地变量
      +-- OSError                         操作系统错误,
      |    +-- BlockingIOError               操作将阻塞对象设置为非阻塞操作
      |    +-- ChildProcessError             子进程上的操作失败
      |    +-- ConnectionError               与连接相关的异常的基类
      |    |    +-- BrokenPipeError             在已关闭写入的套接字上写入
      |    |    +-- ConnectionAbortedError      连接尝试被对等方中止
      |    |    +-- ConnectionRefusedError      连接尝试被对等方拒绝
      |    |    +-- ConnectionResetError        连接由对等方重置
      |    +-- FileExistsError               创建已存在的文件或目录
      |    +-- FileNotFoundError             请求不存在的文件或目录
      |    +-- InterruptedError              系统调用被输入信号中断
      |    +-- IsADirectoryError             在目录上请求文件操作
      |    +-- NotADirectoryError            在不是目录的事物上请求目录操作
      |    +-- PermissionError              在没有访问权限的情况下运行操作
      |    +-- ProcessLookupError            进程不存在
      |    +-- TimeoutError                  系统函数在系统级别超时
      +-- ReferenceError                弱引用试图访问已经垃圾回收了的对象
      +-- RuntimeError                  一般的运行时错误
      |    +-- NotImplementedError      尚未实现的方法
      |    +-- RecursionError           解释器检测到超出最大递归深度
      +-- SyntaxError                   Python 语法错误
      |    +-- IndentationError         缩进错误
      |         +-- TabError          Tab 和空格混用
      +-- SystemError              一般的解释器系统错误
      +-- TypeError               对类型无效的操作
      +-- ValueError              传入无效的参数
      |    +-- UnicodeError             Unicode 相关的错误
      |         +-- UnicodeDecodeError     Unicode 解码时的错误
      |         +-- UnicodeEncodeError     Unicode 编码时错误
      |         +-- UnicodeTranslateError  Unicode 转换时错误
      +-- Warning                       警告的基类
           +-- DeprecationWarning          关于被弃用的特征的警告
           +-- PendingDeprecationWarning   关于构造将来语义会有改变的警告
           +-- RuntimeWarning           可疑的运行行为的警告
           +-- SyntaxWarning            可疑的语法的警告
           +-- UserWarning              用户代码生成的警告
           +-- FutureWarning            有关已弃用功能的警告的基类
           +-- ImportWarning            模块导入时可能出错的警告的基类
           +-- UnicodeWarning           与Unicode相关的警告的基类
           +-- BytesWarning             bytes和bytearray相关的警告的基类
           +-- ResourceWarning           与资源使用相关的警告的基类。。

 注:1、重点关注的Python内置异常有:AttributeError(对象没有这个属性)、ValueError(传入无效的参数)、TypeError(对类型无效的操作)、SyntaxError(Python 语法错误)、NameError(未声明、初始化对象)、OSError(操作系统错误)

二、HTTP异常

第一部分:常用的HTTP异常:

1xx:表示临时响应
100:(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分
101:(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换

2xx:表示成功处理了请求的状态代码
200(成功)服务器已成功处理了请求,通常,这表示服务器提供了请求的页面
204(重置内容)服务器成功处理了请求,但没有返回任何内容
206(部分内容)服务器成功处理了部分GET请求

3xx(重定向):表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向
301:(永久移动)请求的页面已永久移动到新位置。服务器返回此响应(对GET和HEAD请求的响应)时,会自动将请求者转到新位置
302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303(查看其他位置)请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码
304(未修改)自从上次请求后,请求的页面未修改过。服务器返回此响应时,不会返回网页内容

4xx(请求错误):这些状态代码表示请求可能出错,妨碍了服务器的处理
400:(错误请求)服务器不理解请求的语法
401(未授权)请求要求身份验证。对于需要登录的网页,服务器可能返回此响应
403(禁止)服务器拒绝请求
404(未找到)服务器找不到请求的网页
405(方法禁用)禁用请求中指定的方法
406(不接受)无法使用请求的内容特性响应请求的网页
408(请求超时)服务器等候请求时发生超时
414(请求的URI过长)请求的URI(通常为网址)过长,服务器无法处理
415(不支持的媒体类型)请求的格式不受请求页面的支持
416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态码

5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错
500(服务器内部错误)服务器遇到错误,无法完成请求
501(尚未实施)服务器不具备完成请求的功能,例如,服务器无法识别请求方法时可能会返回此代码
502(错误网关)服务器作为网关和代理,从上游服务器收到无效响应
503(服务器不可用)服务器目前无法使用(由于超载或者停机维护)。通常,这只是暂时状态
504(网关超时)服务器作为网关或者代理,但是没有及时从上游服务器收到请求
505(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本

第二部分:HTTP异常详细

400 无法解析此请求。  
401.1 未经授权:访问由于凭据无效被拒绝。  
401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。  
401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。  
401.4 未经授权:Web 服务器上安装的筛选器授权失败。  
401.5 未经授权:ISAPI/CGI 应用程序授权失败。  
401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。  

403 禁止访问:访问被拒绝。  
403.1 禁止访问:执行访问被拒绝。  
403.2 禁止访问:读取访问被拒绝。  
403.3 禁止访问:写入访问被拒绝。  
403.4 禁止访问:需要使用 SSL 查看该资源。  
403.5 禁止访问:需要使用 SSL 128 查看该资源。  
403.6 禁止访问:客户端的 IP 地址被拒绝。  
403.7 禁止访问:需要 SSL 客户端证书。  
403.8 禁止访问:客户端的 DNS 名称被拒绝。  
403.9 禁止访问:太多客户端试图连接到 Web 服务器。  
403.10 禁止访问:Web 服务器配置为拒绝执行访问。  
403.11 禁止访问:密码已更改。  
403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。  
403.13 禁止访问:客户端证书已在 Web 服务器上吊销。  
403.14 禁止访问:在 Web 服务器上已拒绝目录列表。  
403.15 禁止访问:Web 服务器已超过客户端访问许可证限制。  
403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任。  
403.17 禁止访问:客户端证书已经到期或者尚未生效。  
403.18 禁止访问:无法在当前应用程序池中执行请求的 URL。  
403.19 禁止访问:无法在该应用程序池中为客户端执行 CGI。  
403.20 禁止访问:Passport 登录失败。  

404 找不到文件或目录。  
404.1 文件或目录未找到:网站无法在所请求的端口访问。  
注意 404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特定 IP 地址/端口组合上收到客户端请求,而且没有将 IP 地址配置为在该特定的端口上侦听,则 IIS 返回 404.1 HTTP 错误。例如,如果一台计算机有两个 IP 地址,而只将其中一个 IP 地址配置为在端口 80 上侦听,则另一个 IP 地址从端口 80 收到的任何请求都将导致 IIS 返回 404.1 错误。只应在此服务级别设置该错误,因为只有当服务器上使用多个 IP 地址时才会将它返回给客户端。
404.2 文件或目录无法找到:锁定策略禁止该请求。  
404.3 文件或目录无法找到:MIME 映射策略禁止该请求。  

405 用于访问该页的 HTTP 动作未被许可。  
406 客户端浏览器不接受所请求页面的 MIME 类型。  
407 Web 服务器需要初始的代理验证。  
410 文件已删除。  
412 客户端设置的前提条件在 Web 服务器上评估时失败。  
414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。  

500 服务器内部错误。  
500.11 服务器错误:Web 服务器上的应用程序正在关闭。  
500.12 服务器错误:Web 服务器上的应用程序正在重新启动。  
500.13 服务器错误:Web 服务器太忙。  
500.14 服务器错误:服务器上的无效应用程序配置。  
500.15 服务器错误:不允许直接请求 GLOBAL.ASA。  
500.16 服务器错误:UNC 授权凭据不正确。  
500.17 服务器错误:URL 授权存储无法找到。  
500.18 服务器错误:URL 授权存储无法打开。  
500.19 服务器错误:该文件的数据在配置数据库中配置不正确。  
500.20 服务器错误:URL 授权域无法找到。  
500 100 内部服务器错误:ASP 错误。  

501 标题值指定的配置没有执行。  
502 Web 服务器作为网关或代理服务器时收到无效的响应。
503(服务器不可用)服务器目前无法使用(由于超载或者停机维护)。通常,这只是暂时状态
504(网关超时)服务器作为网关或者代理,但是没有及时从上游服务器收到请求
505(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本
posted @ 2019-12-13 11:55  石斛  阅读(462)  评论(0编辑  收藏  举报