zoukankan      html  css  js  c++  java
  • python的异常处理

    try...except

    有时候我们写程序的时候,会出现一些错误或异常,导致程序终止。例如,做除法时,除法为0,会引发一个
    ZeroDivisionError

    a=10
    b=0
    try:
    c=a/b
    print c

    except ZeroDivisionError ,e:
    print e.message

    print "done"

    我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后
    没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except

    处理一组异常可以这样写(其中e代表异常的实例):

    try:
    pass

    except (IOError, ZeroDivisionError) ,e:
    print e

    try ......except....else 语句,当没有异常发生时,else中的语句将会被执行。

    例子:

    a = 10

    b = 0

    try:
    c = b/a/b
    print c

    except (IOError , ZeroDivisionError),x:
    print x

    else:

    print ("no error")

    print "done"


    二、raise 引发一个异常
    例子:如果输入的数据不是整数,则引发一个ValueError

    inputValue = input("please input a int data:")

    if type(inputValue)!=type(1)
    raise ValueError

    else:
    print (inputValue)


    三、try。。。finally

    无论异常是否发生,在程序结束前,finally中的语句都会被执行

    a = 10
    b =0

    try:
    print a/b

    except:
    print "error"

    finally:
    print "always excute"


    四、自定义一个异常类


    这个自定义

    五、python所有的标准异常类:

    异常名称

    描述

    BaseException (所有异常的基类(父类))

    SystemExit (解释器请求退出)

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

    Exception (常规错误的基类)

    Stoplteration (迭代器没有更多的值)

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

    SystemExit (python解释器请求退出)

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

    ArithemticError (所有数值计算错误的基类)

    FloatingPointError (浮点计算错误)

    OverflowError (数值运算超出最大限制)

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

    AssertionError (断言语句失败)

    AttributeError(对象没有这个属性)

    EoFError (没有内建输入,到达EoF标记)

    EnvironmentError (操作系统错误的基类)

    IOError (输入/输出操作失败)

    OSError (操作系统错误)

    windowsError (系统调用失败)

    ImportError (导入模块/对象失败)

    LookupError (无效数据查询的基类)

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

    KeyError (映射中没有这个建)

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

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

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

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

    RuntimeError (一般的运行时错误)

    SyntaxError (python 语法错误)

    TypeError (对类型无效的操作)

    ValueError (传入无效的参数)

    SyntaxWarning (可疑的语法的警告)

  • 相关阅读:
    170325 第六章应用层 域名系统 DNS
    文件操作(Linux系统调用)
    进程优先级,进程nice值和%nice的解释
    常用的操作系统进程调度算法
    fork函数返回值问题
    进度条的实现
    find命令
    单链表的插入排序
    B树
    排序
  • 原文地址:https://www.cnblogs.com/wuheng-123/p/9097879.html
Copyright © 2011-2022 走看看