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)
    
  • 相关阅读:
    PAT B1027 打印沙漏 (20 分)
    PAT B1025 反转链表 (25 分)
    PAT B1022 D进制的A+B (20 分)
    PAT B1018 锤子剪刀布 (20 分)
    PAT B1017 A除以B (20 分)
    PAT B1015 德才论 (25 分)
    PAT B1013 数素数 (20 分)
    PAT B1010 一元多项式求导 (25 分)
    HDU 1405 The Last Practice
    HDU 1165 Eddy's research II
  • 原文地址:https://www.cnblogs.com/wuxiaoru/p/11586068.html
Copyright © 2011-2022 走看看