iis服务器助手广告
返回顶部
  • 307
分享到

异常

异常 2023-01-30 22:01:25 307人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

异常类型   python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是

异常类型

 

python标准异常

异常名称

描述

BaseException

所有异常的基类

SystemExit

解释器请求退出

KeyboardInterrupt

用户中断执行(通常是输入ctro+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

尚未实现的方法

SyntaxError

Python 语法错误

IndentationError

缩进错误

TabError

Tab 和空格混用

SystemError

一般的解释器系统错误

TypeError

对类型无效的操作

ValueError

传入无效的参数

UnicodeError

Unicode 相关的错误

UnicodeDecodeError

Unicode 解码时的错误

UnicodeEncodeError

Unicode 编码时错误

UnicodeTranslateError

Unicode 转换时错误

Warning

警告的基类

DeprecationWarning

关于被弃用的特征的警告

FutureWarning

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

OverflowWarning

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

PendingDeprecationWarning

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

RuntimeWarning

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

SyntaxWarning

可疑的语法的警告

UserWarning

用户代码生成的警告

FileNotFoundError

未发现文件错误,要读的文件不存在

  在python2中,要读的文件不存在时,会报IOError异常;而在python3中,如果要读的文件不存在,则会报FileNotFoundError异常。

 

异常处理

try...except...:

  1.在try语句中捕获异常,在except语句中处理异常。当try所包含的语句中没有异常时,程序正常执行,except语句被忽略,不再执行;当try语句中捕获到了异常时,try语句从异常出现的位置都不再执行,而是执行except语句进行异常处理。

  2.except语句后面可以跟一个具体的异常类型,表示此条except语句专门用来处理此种类型的异常;也可以没有任何异常类型,表示此条except语句可以处理任何类型的异常。

  3.try后还可以有多个except语句,每个except语句都可以用来处理某一类的异常,当try捕获到了某个异常时,就会跳到相应的except语句中进行异常的处理。此外,还可以在一个except语句后面放多个异常参数,多个异常参数必须以元组的形式放入,表示这几个异常由某一个except语句作统一的处理。

  4.可以在except的异常参数后加上as语句,用来将系统提示的异常原因打印出来。

  5.如果except语句中对异常处理的要求不严格,不需要具体的处理某一类的异常,可以直接使用except或者except Exception, e或者except Exception as e来捕获所有类型的异常,因为as后的变量e指向了异常对象的引用。

  raise关键字用来抛出自定义的异常,即raise关键字后面可以跟自定义的异常。当只使用raise关键字时,而没有自定义异常,它会将当前位置发生的异常向上抛出,抛到上一级位置。同样的,如果没有raise,发生异常时,异常也会从当前位置一级一级地向上抛出,知道异常被捕获或者被系统处理。

 

def test1():
    print('......1.....')
    print(num)    # 此处有异常,打印了一个未申明的变量

def test2():
    print('......2.....')
    test1()    # test2函数里调用test1函数

def test3():
    try:    # test3函数中有异常处理机制
        print('......3.....')
        test2()    # test3函数里调用test2函数
    except:
        print('there has a error.')

test3()
MacdeMBP:~ mac$ python3 a.py    # 执行文件
......3.....
......2.....
......1.....
there has a error.    # test3中作的异常处理

 

  以上代码中,当执行test3函数时,test3函数中调用了test2函数,test2函数中又调用了test1函数,test1函数发生异常,而test1函数中又没有异常处理机制,此时会将异常上抛给test2函数,test2函数中也没有异常处理机制,则会将异常继续上抛给test3函数,test3函数中会捕获异常并进行处理。若test3函数中也没有异常处理,则会继续上抛给python解析器,由python解析器进行处理并中断程序。

 else子句:

  在异常处理中,else子句是放在except子句之后。如果try语句中没有捕获到异常,即程序正常的执行完毕,except被忽略,此时else子句会执行;如果try语句中发生异常,except被执行,此时else子句不会被执行。简言之,发生了异常,else不执行;没有发生异常,else语句执行。

finally子句:

  finally子句放在最后,不管前面执行了try还是except,最终都要执行finally子句,它可用来作最后的善后工作,比如可在finally中关闭文件等操作。

  异常处理的格式综合为:

    try:

      pass

    except:

      pass

    else:

      pass

    finally:

      pass

 

用户自定义异常

  通过自定义一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的通过直接或间接的方式继承Exception类。以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。在try语句块中,用户自定义的异常后执行except块语句,变量 e 指向了Networkerror类的实例的引用。

 

class NetworkError(RuntimeError):    # 直接或间接的方式继承Exception类
    def __init__(self, arg):
        self.args = arg
在定义以上类后,可以触发该异常,如下所示:
try:
    raise NetworkError("Bad hostname")    # 抛出自定义的异常类,可在except中处理
except NetworkError as e:    # 变量e指向了Networkerror异常类实例的引用
    print e.args    # 通过实例打印异常类中的属性

 

 

assert

  Python的断言就是检测一个条件,如果条件为真,它什么都不做;反之它触发一个带可选错误信息的AssertionError。通常用来断言某个变量的值必然是什么,或者对象必然拥有某个属性。

  使用assert的最佳时机:

    防御性编程

    运行时对程序逻辑的检测;

    合约性检查(比如前置条件、后置条件);

    程序中的常量;

    检查文档。

 

 

--结束END--

本文标题: 异常

本文链接: https://www.lsjlt.com/news/180193.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 异常--python异常处理
    --****--python 异常处理------------------------------------------------------------------------------****DB API中定义了一些数据库操作的错...
    99+
    2023-01-31
    异常 python
  • 异常
    异常类型   python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是...
    99+
    2023-01-30
    异常
  • python常用异常
    AttributeError:试图访问一个对象没有的属性,比如foo.x,但是foo没有属性xIOError:输入/输出异常;基本上就是无法打开文件ImputError:无法引入模块或包;基本上是路径问题或者名称错误IndentationE...
    99+
    2023-01-31
    异常 常用 python
  • C++ 函数异常与类异常:多重异常处理策略
    c++++ 异常处理分为函数异常和类异常两种。多重异常处理策略包括逐一处理和捕获基类两种。实战中,可以使用异常处理策略处理不同来源的异常,根据异常类型打印不同的错误消息。 C++ 函数...
    99+
    2024-05-03
    c++ 异常处理
  • python 异常
    最长用到的异常处理的形式:try:    正常的操作except:    发生异常,执行这块代码else:    如果没有异常执行这块代码finally:    不管如何,最后一定要执行的代码try:    10/0except Excep...
    99+
    2023-01-31
    异常 python
  • PHP:异常
    PHP:异常 HP 有一个和其他语言相似的异常模型。 在 PHP 里可以 throw 并 catch 异常。 为了捕获潜在的异常,可以将代码包含在 try 块里。 每个 try 都必须有一个...
    99+
    2023-09-05
    php 开发语言
  • Python28 异常
    参考 http://www.cnblogs.com/wupeiqi/articles/5017742.html 异常 name = ['zhangsan','lisi'] print (name[3]) data = {'name':'Am...
    99+
    2023-01-31
    异常
  • Python异常
      异常是一个事件,该事件会在程序执行过程中发生,将影响程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。...
    99+
    2023-01-31
    异常 Python
  • 【Java】异常
    看似不起波澜的日复一日 会突然在某一天让人看到坚持的意义 目录 1.认识异常 1.1 异常的概念  1.2 常见的异常  2.异常的体系结构 3.异常的分类  3.1 编译时异常  3.2 运行时异常  4.异常的处理  4.1 事前防...
    99+
    2023-09-11
    java jvm 开发语言
  • python 异常
    导航: 1、语法错误2、异常3、异常处理4、异常的传递5、抛出异常6、在异常处理中抛出异常   python的异常分为两种,1)、语法错误,在python解释器的语法检测中不通过不能运行代码    2)、异常,python程序运行期检测...
    99+
    2023-01-30
    异常 python
  • Java异常(Exception)处理以及常见异常总结
    目录前言异常简介 异常类型 总结前言 很多事件并非总是按照人们自己设计意愿顺利发展的,经常出现这样那样的异常情况。例如: 你计划周末郊游,计划从家里出发→到达目的→游泳→烧烤→回家。...
    99+
    2024-04-02
  • PHP异常处理:处理异步操作中的异常
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • Python 常见异常列表
    常见Python异常异常描述AssertionErrorassert(断言)语句失败AttributeError试图访问一个对象没有的属性,比如foo.x ,但是foo没有x这个属性。IOError输入/输出异常,基本上是无法打开文件。Im...
    99+
    2023-01-31
    异常 常见 列表
  • Java 异常机制Exception和自定义异常
    目录异常机制异常体系结构异常的捕获与抛出自定义异常异常机制 异常:就是不符合实际需求,在实际中可能不存在也可能不满足实际,所以出现的问题称之为异常。 异常的三种类型: 检查性异常:用...
    99+
    2024-04-02
  • 异常处理
      程序中有两种错误     1.语法错误(这种错误,根本过不了Python解释器的语法检测,必须在程序执行前就改正) #错误示范一 if #错误示范二 print("adad" 语法错误     2.逻辑错误 # 用...
    99+
    2023-01-30
    异常
  • Java异常学习之自定义异常详解
    前言哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞J...
    99+
    2023-05-31
    java 自定义异常 ava
  • Python 异常 Exception
    在Python的类中有很多方法的名字有特殊的重要意义。现在我们将学习__init__方法的意义。 __init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。注意,这个名称的开始和结尾...
    99+
    2023-01-31
    异常 Python Exception
  • IllegalStateException(java异常)
    IllegalStateException是Java标准库中的一个异常类,表示在不合适或无效的情况下执行了某个方法或操作。 以下是一些可能会导致IllegalStateException异常的常见情况...
    99+
    2023-08-31
    java 开发语言 jvm
  • Java之异常
    作者简介: zoro-1,目前大二,正在学习Java,数据结构等 作者主页: zoro-1的主页 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 ...
    99+
    2023-09-21
    java 笔记 程序人生
  • #21 Python异常
    前言 运行程序时经常遇到各种错误,例如:ImportError(导入模块错误)、IndexError(索引错误)、NameError(变量错误)、SyntaxError(语法错误)、IndentationError(缩进错误)等,你或许有...
    99+
    2023-01-30
    异常 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作