zoukankan      html  css  js  c++  java
  • 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('我自己定义了一个异常')





  • 相关阅读:
    MVC是什么意思?
    Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
    人人网
    百度框计算研究
    最近总被黑。然后。。发现了很多知识值得学习。。分享出来。
    首次购房契税下调至1% 首付降为20%
    由“百鸡问题”浅谈程序性能
    10月1日起机动车所有人可自行编排车牌号
    08中国互联网大会23在南京开幕
    MySQL联合创始人向Sun递交辞呈
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10958689.html
Copyright © 2011-2022 走看看