• 面向对象--异常处理


    基本模型:
    try: 被检测的代码块 except 异常类型: try中一旦检测到异常,就执行这个位置的逻辑
    try:
        f = open('a.txt')
        g = (line.strip() for line in f)
        print(next(g))
        print(next(g))
        print(next(g))
        print(next(g))
        print(next(g))
    except StopIteration:
        f.close()

     对于这么零散的报错功能,有一个万能的

    s1 = 'hello'
    try:
        int(s1)
    except Exception as e:
        print(e)
    
    
    当用  except  Exception的时候,就会对所有的错误类型一次性报错,所以尽量用在一些别的模式后面

    1)自己报错的时候 raise EvaException  的时候,如果不在EvaException 后面加东西,那么则不会显示任何东西

    如果在括号里面加了东西,则会显示括号里的东西

    class EvaException(BaseException):
        def __init__(self,msg):
            self.msg=msg
        def __str__(self):
            return self.msg
    
    try:
        raise EvaException('类型错误')
    except EvaException as e:
        print(e)

    这里是主动插入错误。


    2)断言
    assert
    assert 1==2直接报错。不推荐使用

    什么时候用异常处理

    有的同学会这么想,学完了异常处理后,好强大,我要为我的每一段程序都加上try...except,干毛线去思考它会不会有逻辑错误啊,这样就很好啊,多省脑细胞===》2B青年欢乐多

    try...except应该尽量少用,因为它本身就是你附加给你的程序的一种异常处理的逻辑,与你的主要的工作是没有关系的
    这种东西加的多了,会导致你的代码可读性变差,只有在有些异常无法预知的情况下,才应该加上try...except,其他的逻辑错误应该尽量修正

  • 相关阅读:
    4、提取看似无用的委托变量,减少构造开销
    Cloud Foundry buildpack
    mysql中engine=innodb和engine=myisam的区别
    Maven中dependencyManagement的作用
    bean
    servlet
    web服务器 应用服务器区别 web框架
    Java和Python的Web开发
    spring mvc controller 高并发问题
    es 批量添加数据
  • 原文地址:https://www.cnblogs.com/52forjie/p/7382087.html
Copyright © 2020-2023  润新知