• python异常处理


    异常:程序运行时报错

    关于异常处理:

      程序员编订特定编码,用来捕捉异常,这段代码与与程序逻辑没有关系,只和异常处理相关。捕捉成功则进入另一处理分支,执行为其定制的逻辑,使程序不会发生崩溃

    1.使用if判断式:

    num1=input('>>: ') #输入一个字符串试试
    if num1.isdigit():
        int(num1) #我们的正统程序放到了这里,其余的都属于异常处理范畴
    elif num1.isspace():
        print('输入的是空格,就执行我这里的逻辑')
    elif len(num1) == 0:
        print('输入的是空,就执行我这里的逻辑')
    else:
        print('其他情情况,执行我这里的逻辑')

    总结:  

      if判断式的异常处理只能针对某一段代码,对于不同代码段的相同类型还需要重复if进行处理

      频繁使用if会导致程序本身可读性变差

      if是能解决异常的只是存在上述问题

    2.选用py特定语法:

    1.基本语法

    try:
         被检测的代码块
    except 异常类型:
         try中一旦检测到异常,就执行这个位置的逻辑

    2.异常只能处理指定的异常情况,如果非指定异常则无法处理

    # 未捕获到异常,程序直接报错
    s1 = 'hello'
    try:
        int(s1)
    except IndexError as e:
        print(e)

    3.万能异常:Exception可以捕获任意异常

    s1 = 'hello'
    try:
        int(s1)
    except Exception as e:
        print(e)
    ---invalid literal for int() with base 10: 'hello'
    # 它不会飘红,但是也会显示相关错误

     如果相对任何异常都统一丢弃,那么一个Exception就足够了

    如果想要对不同的异常定制不同的处理逻辑,则需要多分支处理

    s1 = 'hello'
    try:
        float(s1)
    except IndexError as e:
        print(e)
    except KeyError as e:
        print(e)
    except ValueError as e:
        print(e)

    4.其他组织机构

    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:      #使用as e 是为了把错位打印出来,方便查看错误点
    #    print(e)
    else:
        print('try内代码块没有异常则执行我')
    finally:
        print('无论异常与否,都会执行该代码,通常是进行收尾工作')    # 这步不管怎样最后都会执行

    5.主动触发异常

    try:
        raise TypeError('类型错误')
    except Exception as e:
        print(e)
  • 相关阅读:
    2020以去过半,写一下上半年的总结跟下半年的计划
    js实现浏览器打印功能
    看不见远程新建git分支
    Vue中导出Excel表格方法
    SVN命令使用详解
    IOS NSTimer 定时器用法总结
    静态库与动态库的区别?
    iOS 本地缓存实现 方案借鉴
    IOS开发中NSRunloop跟NSTimer的问题
    FMDB
  • 原文地址:https://www.cnblogs.com/LearningOnline/p/8964273.html
Copyright © 2020-2023  润新知