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)
    
  • 相关阅读:
    初探Object Pascal的类(一)
    初探Object Pascal的类(二)
    强制类型转换(Casting)
    初探Object Pascal的类(三)
    子界类型(Subrange types)
    浅析枚举类型(Enumerated types)
    指针(Pointer)
    浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]
    算我给Google本地和E都市做个广告吧
    Google地图的配色问题(以及MapBar和51ditu)
  • 原文地址:https://www.cnblogs.com/wuxiaoru/p/11586068.html
Copyright © 2011-2022 走看看