zoukankan      html  css  js  c++  java
  • 异常

    ##异常
    ##什么是异常?
    ##微博上
    ##异常就是python发出的错误信号
    ##书上
    ##python用异常对象来表示异常情况,遇到异常后,会引发异常.如果异常对象并未被处理或者捕捉
    ##程序就会用所谓的回溯(traceback,一种错误的信息)终止执行:
    ##
    ##内建函数都在exceptions模块中可以用dir函数来调取
    ##
    ##raise语句来引发异常
    ##raise Exception
    ##Traceback (most recent call last):
    ## File "C:/python10期/3.15/课下练习及其思考.py", line 12, in <module>
    ## raise Exception
    ##Exception
    ##raise Exception("hello world")
    ##Traceback (most recent call last):
    ## File "C:/python10期/3.15/课下练习及其思考.py", line 17, in <module>
    ## raise Exception("hello world")
    ##Exception: hello world

    一些常见的异常
    Exception 所有异常的基类
    AttributeError 特性引用或赋值失败时引发
    IOError 试图打开不存在文件(包括其他情况时)引发
    IndexError 在使用序列中不存在索引时引发
    KeyError 在使用映射中不存在键时引发
    NameError 找不到名字(变量)时引发
    SyntaxError 在代码错误形式时引发
    TypeError 在内建操作或者函数应用于错误类型的对象时引发
    ValueError 在内建操作或者函数应用于正确的对象,但是该对象适用不适合的值引发
    ZeroDivisionError 在除法或者模除操作的第二个参数为0时引发


    如何创建异常
    就像创建一个类一样,只不过是异常类
    例如:class SomeCustomException(Exception):pass

    捕捉异常
    rey except语句来实现捕捉异常
    try:
    x=input()
    y=input()
    print(x/y)
    except ZeroDivisionError:
    print("注意分母不要为0")


    捕捉对象
    try:
    x=input()
    y=input()
    print(x/y)
    except ZeroDivisionError,e:
    print("注意分母不要为0")
    print(e)
    全捕捉
    try:
    x=input()
    y=input()
    print(x/y)
    except ZeroDivisionError,e:
    print("注意分母不要为0")
    print(e)
    except 全捕捉

    else语句
    try:
    x=input()
    y=input()
    print(x/y)
    except ZeroDivisionError,e:
    print("注意分母不要为0")
    print(e)
    else:
    print("没有错误啊")

    finally最终能够对异常进行清理,做一些收尾的工作


    默写内容
    s1 = 'hello'
    try:
    int(s1)
    except IndexError as e:
    print(e)
    except KeyError as e:
    print(e)
    except ValueError as e:
    print(e)
    #except Exception as e:
    # print(e)
    else:
    print('try内代码块没有异常则执行我')
    finally:
    print('无论异常与否,都会执行该模块,通常是进行清理工作')


  • 相关阅读:
    堆栈信息分析
    JVM垃圾回收日志结构分析
    grep -n 显示行号
    Zabbix报告无交换内存主机 Lack of free swap space on xxxxx
    Zabbix利用msmtp+mutt发送邮件报警
    Nginx开启Gzip压缩大幅提高页面加载速度
    rsync --exclude 参数
    zabbix 监控客户端数据库 zabbix客户端
    centos 截图命令 screenshot
    centos下安装五笔输入法的教程
  • 原文地址:https://www.cnblogs.com/cangshuchirou/p/8576285.html
Copyright © 2011-2022 走看看