• python中的异常处理tryexcept


    1、异常基础
    在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!

    2.异常种类

    names = ['张三','李四']
    # names['sdfsdf']
    # data = {}
    #
    #
    try:
        open("tes.txt")
    
    except (KeyError,IndexError) as e :  # 两种错误可以放在一起,但是如果现实检测到后面的那个错误,那么直接就会跳出去
        print("没有这个key",e)           # 而且不会执行检测到前面一个错误
    except IndexError as e :
        print("列表操作错误",e)
    except Exception as e:  # 又叫做万能异常,可以捕获任意异常
        print("未知错误",e)
    else:
        print("一切正常")   # 当没有错误的时候执行
    finally:
        print("不管有没有错,都执行")
    
    
    # except Exception as e:  # 一般是放在后面抓取未知的错误
    # 但是像是缩进错误这种错误的话,是抓不到的,因为当遇到缩进错误的时候,代码根本不会继续进行下去的
    

    3.主动触发异常

    try:
        raise Exception('错误了。。。')
    except Exception as e:
        print e
    

    4、自定义异常

    class WupeiqiException(Exception):
     
        def __init__(self, msg):
            self.message = msg
     
        def __str__(self):
            return self.message
     
    try:
        raise WupeiqiException('我的异常')
    except WupeiqiException as e:
        print e
    

    5.异常种类
    python中的异常种类非常多,每个异常专门用于处理某一项异常!!!

    AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    IOError 输入/输出异常;基本上是无法打开文件
    ImportError 无法引入模块或包;基本上是路径问题或名称错误
    IndentationError 语法错误(的子类) ;代码没有正确对齐
    IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    KeyError 试图访问字典里不存在的键
    KeyboardInterrupt Ctrl+C被按下
    NameError 使用一个还未被赋予对象的变量
    SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    TypeError 传入对象类型与要求的不符合
    UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
    导致你以为正在访问它
    ValueError 传入一个调用者不期望的值,即使值的类型是正确的
    

    实例1:IndexError

    dic = ["wupeiqi", 'alex']
    try:
        dic[10]
    except IndexError as e:
        print e
    

    实例2.KeyError

    dic = {'k1':'v1'}
    try:
        dic['k20']
    except KeyError as e:
        print e
    

    实例3.ValueError

    s1 = 'hello'
    try:
        int(s1)
    except ValueError as e:
        print e
    
    本人目前在学习python、前端、数据库和linux相关的内容,故打算写一些学习笔记,包括安装软件遇到的一些问题、编程语言的学习。 学习如逆水行舟,你在原地踏步的同时,别人一直在前进!
  • 相关阅读:
    F广搜
    Python中range和xrange的异同之处
    数组中出现次数超过一半的数字
    iOS开发之剖析"秘密"App内容页面效果(一)
    Balloon Comes!
    scikit-learn: isotonic regression(保序回归,非常有意思,仅做知识点了解,但差点儿没用到过)
    C#数据缓存介绍及Caching通用帮助类整理
    SVN Working copying 'xxxxx/xxxx/xxxx' locked
    读书笔记-APUE第三版-(7)进程环境
    UVA 10555
  • 原文地址:https://www.cnblogs.com/souhaite/p/10585600.html
Copyright © 2020-2023  润新知