zoukankan      html  css  js  c++  java
  • python学习第七周之异常处理

    1.异常处理

    异常处理其实就是将程序抛出的错误抓住,以便能够不影响程序的运行。

    我们先定义一个列表,跟一个字典

    names=['wu','jack']
    data={}
    

     (1)然后抓住它们抛出的异常:

    try:
        names[3]
        data['name']
    
    except IndexError as e:
        print("列表操作错误",e)
    except KeyError as e:
        print("没有这个key",e)
    

       以上这两个均异常,抓住一个异常便不会在往下走了,所以结果为:列表操作错误 list index out of range

      我们还可以将这两个写在一起:

    except (KeyError,IndexError) as e:
        print("没有这个key",e)
    

     (2)如果是文件系统的系统异常,如以下代码

    try:
        open("tes.txt")
        a=1
    except FileNotFoundError as e:   #针对文件存在的错误,    open("tes.txt")
         print("有错误", e)
    

     (3)如果是已知的抛出异常,我们用已知的名字来写,如FileNotFoundError,这样方便调试程序;

    如果是未知的错误,我们用以下程序,except Exception 可以抓住所有的错误;

    except Exception as e:    #抓住所有的错误,可以用这个来抓取未知的错误
         print("未知错误",e)
    

     (4)else在没有发生错误时执行

    else:   #没有错误的时候执行
         print("一切正常")
    

     (5)finally,不管有没有错误都会执行

    finally:  #不管有没有错误都会执行
         print("不管用没有错都执行")
    

     2.总结:异常处理的一般格式

    try :
            code
        except (Error1,Erro2) as e:
            print e
    
        except Exception :抓住所有错误,可以用来抓取未知错误
    

    3.自定义异常:

    class WuException(Exception):
        def __init__(self, msg):
            self.message = msg
        def __str__(self):
            return self.message
            # return "ssss"
    try:
        raise WuException('数据库连接不上')    #触发异常
    except WuException as e:
        print(e)
    
  • 相关阅读:
    [UVA1149]Dominating Patterns
    [HDOJ1358]Period
    [HDOJ3065]病毒侵袭持续中
    【RQNOJ356】myt的格斗
    【rqnoj39】 饮食问题
    【rqnoj28】[Stupid]愚蠢的宠物
    【rqnoj378】 约会计划
    layer弹框在实际项目中的一些应用
    layer弹框在实际项目中的一些应用
    移动开发之css3实现背景几种渐变效果
  • 原文地址:https://www.cnblogs.com/wuxiaoru/p/11586068.html
Copyright © 2011-2022 走看看