• 异常


    ##异常
    ##什么是异常?
    ##微博上
    ##异常就是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('无论异常与否,都会执行该模块,通常是进行清理工作')


  • 相关阅读:
    安装MYSQL8.0提示api-ms-win-crt-runtime-l1-1-0.dll 丢失
    【.net】未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    Windows 2008 R2 配置 DNS 实现二级域名
    如何修改windows Server 2012 远程桌面连接默认端口
    System x 服务器制作ServerGuide U盘安装Windows Server 2012 R2操作系统
    MYSQL安装后自带用户的作用
    mysql 查看数据库、表的基本命令
    嵌入式必知基础算法
    嵌入式学习网站集合
    C避坑指南
  • 原文地址:https://www.cnblogs.com/cangshuchirou/p/8576285.html
Copyright © 2020-2023  润新知