zoukankan      html  css  js  c++  java
  • 面向对象--异常处理

    基本模型:
    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,其他的逻辑错误应该尽量修正

  • 相关阅读:
    rocketmq 命令示例
    原 荐 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控
    业务系统中最核心的状态设计,异常 case. (系统设计)
    大数据架构分析
    开源 java 电商系统
    数据一致性对账平台架构
    管理中遇到的问题--人,组织上的问题
    腾讯后台开发面试题
    理解inode
    TCP序列号和确认号
  • 原文地址:https://www.cnblogs.com/52forjie/p/7382087.html
Copyright © 2011-2022 走看看