zoukankan      html  css  js  c++  java
  • python编程从零基础到项目实践第九章学习---异常

    基本异常捕捉语句

    1、基本异常捕捉语句语法

    try:

      代码模块1

    except:

      代码模块2

    逻辑顺序:

    1、先执行try语句,代表捕捉异常机制开始

    2、执行代码模块1,若没有出错,忽略后续except关键字和代码模块2,代码正常执行完毕

    3、若在执行代码模块1过程中发生异常现象,则终止代码模块1内剩余代码的执行,转到except处

    4、except关键字捕捉到异常信息,并执行代码模块2,异常处理结束 

    def print_D(dic):
    i=0
    try:
    len1=len(dic)
    while i < len1:
    print(dic.popitem())
    i+=1
    except:
    print(222222)

    print(print_D({1:"a",2:"c"}))
    print(print_D([1,2,3]))

    (1, 'a')
    (2, 'c')
    None
    222222
    None

    finally子句的异常处理

    try:

      代码模块1

    except:

      代码模块2

    finally:

      代码模块3

    try:
    1/0
    except:
    print("不能是0")
    finally:
    print("成功了")

    不能是0
    成功了



    try:
    1/2
    except:
    print(11111)
    finally:
    print(222222)

      

    222222

    捕捉特定异常信息:

    ValueError         对象值不正确时触发

    IndexError     指定的字符串、元组、列表等序列对象的下标元素不存在时,触发该错误

    Nameerror  指定的对象名不存在时,触发该错误

    KeyError  指定的字典键不存在时,触发该错误

    TypeError  提供了错误类型的对象时,触发该错误

    ModuleNoFoundError    模块文件找不到或模块文件名写错时,触发该错误

    SynatxError   语法无效时,触发该错误

    AttributeError   对象属性、方法引用或赋值不当时,触发该错误

    try:
    i+=1
    except NameError:
    print(123213)

    123213

    指定多个特定出错

    try:
    i+=1
    except (NameError,TypeError):
    print(23232323)

    23232323

    raise触发错误
    i="1"
    if type(i)!=int:
    raise TypeError(123213)

    Traceback (most recent call last):
    File "D:/py自学代码/python从零基础到项目实践/第九章异常处理/try和except.py", line 41, in <module>
    raise TypeError(123213)
    TypeError: 123213

  • 相关阅读:
    [你必须知道的.NET]第二十一回:认识全面的null
    《你必须知道的.NET》,内容简介
    [IT史记]开篇:盖茨本纪之离歌
    《你必须知道的.NET》,封面
    《博客园精华集》,CLR/C#分册征求意见稿
    [开发故事]第二回:LINQ来了,先忘记foreach
    《你必须知道的.NET》,封底
    [不得不转载]一个时代的结束:微软盖茨的人生掠影
    [技术速递]MSDN在线改版,新风格新体验
    《你必须知道的.NET》,勘误支持
  • 原文地址:https://www.cnblogs.com/astroboyliu/p/13503412.html
Copyright © 2011-2022 走看看