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

    '''
    '''
    #print(3 / 0)

    #需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行
    '''
    try……except……else
    格式:
    try:
    语句t
    except 错误码 as e:
    语句1
    except 错误码 as e:
    语句2
    ……
    except 错误码 as e:
    语句n
    else:
    语句e

    注意:else语句可有可无

    作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理

    逻辑:当程序执行到try-except-else语句时
    1、如果当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应"语句"
    2、如果当try“语句t”执行出现错误,没有匹配的异常,错误将会被提交到上一层的try语句。或者到程序的最上层
    3、如果当try“语句t”执行没有出现错误,执行else下的“语句e”(你得有)
    '''
    try:
    print(3 / 1)
    except NameError as e:
    print("没有该变量")
    except ZeroDivisionError as e:
    print("除数为0了")
    else:
    print("代码没有问题")

    print("*************")

    #使用except而不使用任何的错误类型
    try:
    #print(4 / 0)
    print(num)
    except:
    print("程序出现了异常")

    #使用except带着多种异常
    try:
    print(5 / 0)
    except (NameError, ZeroDivisionError):
    print("出现了NameError或ZeroDivisionError")

    #特殊
    #1、错误其实是class(类),所有的错误都继承自BaseException,所以在捕获的时候,它捕获了该类型的错误,还把子类一网打尽
    try:
    print(5 / 0)
    except BaseException as e:
    print("异常1")
    except ZeroDivisionError as e:
    print("异常2")

    #2、跨越多层调用,main调用了func2,func2调用了func1,func1出现了错误,这是只要main捕获到了就可以处理
    def func1(num):
    print(1 / num)
    def func2(num):
    func1(num)
    def main():
    func2(0)

    try:
    main()
    except ZeroDivisionError as e:
    print("****")
  • 相关阅读:
    NGINX反向代理与负载均衡
    kubernetes介绍
    Linux下yum出现no module named pycurl 解决办法
    MySQL中间件介绍
    Memcached做Tomcat的session共享
    MySQL高负载优化
    Centos下安装Tomcat7
    浅谈世界坐标系,相机坐标系,图像坐标系,像素坐标系的关系
    相机标定方法之初探
    ubuntu18.04安装kalibr相机标定工具
  • 原文地址:https://www.cnblogs.com/pygo/p/12266670.html
Copyright © 2011-2022 走看看