• python异常处理


    print('异常处理')

    """
    什么是异常处理
    异常就是程序运行中出现的错误,如果改错误没有相应的处理机制
    那么这个错误就会抛出来,程序也会随之停止运行
    为什么要有异常处理
    增强代码的健壮性
    try...except...
    如何使用

    """
    # 异常三部分:
    """
    1.报错类型
    2.错误信息的值
    3.错误的定位信息
    """
    # 异常分类
    """
    1.语法上的错误
    2.逻辑上的错误
    通常语法上的错误编译器会自动帮我们识别,有语法错误程序一般都执行不了,进行异常处理一般是逻辑上的错误
    """
    l = [12,3,4]
    l[123]
    IndexError
    try:
    # d = {'name': 'jason'}
    # d['password']
    a = 1
    x
    l = [1,2,3,4]
    l[123]
    except NameError:
    print('变量未定义')
    except KeyError:
    print('字典键不存在')
    except IndexError:
    print('索引超出范围')

    # 万能异常
    try:
    d = {'name': 'jason'}
    d['password']
    a = 1
    x
    l = [1,2,3,4]
    l[123]
    except Exception as e: # 将错误信息的值赋值给变量a
    print(e)

    # 个人建议捕捉异常不要频繁使用 能尽量不用就不用
    # 仅仅只加在会出现报错的几个行代码上下,try里面的代码越少越好

    try:
    d = {'name': 'jason'}
    d['password']
    # a = 1
    # x
    # l = [1,2,3,4]
    # l[123]
    print('haha')
    pass
    except Exception as e:
    print(e)
    else:
    print('当try里面的代码没有报错的情况下走else')
    finally:
    print('无论前面有没有报错 我都会执行')


    # raise 主动抛出异常
    class User:
    def __init__(self,name):
    self.__name = name
    def set_info(self,val):
    if not isinstance(val,str):
    raise TypeError('name字段必须是str类型')
    self.__name = val
    obj = User('jason')
    obj.set_info(123)


    l = [1,2,3,4]
    assert len(l) < 0

    class MyError(BaseException):
    def __init__(self,msg):
    self.msg = msg

    def __str__(self):
    return '<%s>'%self.msg
    raise MyError('我自己定义了一个异常')





  • 相关阅读:
    作业七:用户体验设计案例分析
    作业五:需求分析
    作业四:结对编程 词频统计
    作业四:结对编程,词频统计
    作业三:词频统计
    作业2
    Github注册过程
    ArrayList的说明及简单用法
    Java类中成员变量、局部变量、静态变量的区别
    AspNetCore.SignalR的JwtBearer认证
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10958068.html
Copyright © 2020-2023  润新知