zoukankan      html  css  js  c++  java
  • 异常处理

    异常处理:

    Trackback:异常的追踪信息

    NameError:异常类

    name ‘a’ is not defined:异常值

     python中一个异常标识一种错误

    异常类:

    AttributeError:访问一个对象没有的属性
    NameError:未声明,未初始化对象
    IOError:输入输出异常,基本上是文件的打开出现错误
    ImportError:无法导入模块或者包,(可能由于路径或者名称问题)
    IndentationError:缩进错误
    IndexError:超出边界,l[1000]
    KeyError:访问字典中不存在的键
    KeyboardInterr:CTRL+C被按
    SyntaxError:非法的python代码
    TypeError:传入对象类型与要求不符合
    UnboundLocalError:访问一个未被设置的局部变量,基本上是因为存在一个同名的局部变量ValueError:传入一个调用者不期望的值,无效的参数
    OSError:操作系统错误
    ZeroDIvisionError:除零
    WindowsError:系统调用失败
    UnicodeError Unicode:相关的错误
    UnicodeDecodeError Unicode:解码错误
    UnicodeEncodeError Unicode:编码错误
    UnicodeTranslateError Unicode:转换时错误
    SystemError:一般的解释器系统错误

    异常处理:(提供异常处理机制来增强代码的健壮性与容错性)

    python解释器检测到错误,触发异常,也允许程序员自己触发异常,程序员自己编写代码,捕获异常,如果捕获异常,则跳转执行相应的处理异常代码的程序,使程序不会崩掉,这是异常处理。

    异常是由程序的错误引起的,语法上的错误和异常处理无关,需要在程序运行前处理好。

    异常处理:程序出错前的异常处理 程序出错后的处理异常

     if判断异常处理:

      只能针对一段代码,对于不同代码相同的异常类型需要写大量重复的if判断来处理,

      而这些代码都与程序本身无关,使人感觉可读性差

    try...except异常处理:

    *****************万能异常类*******
    
    except Excetion as e:
        print(e)
    
    ******************多分支*************
    s1='hahaha'
    try:
        int(s1)
    except IndexError as e:
        print(e)
    except ValueError as e:
        print(e)
    except KeyError as e:
        print(e)
    ************多分支后加Exception*************
    s1='hahaha'
    try:
        int(s1)
    except IndexError as e:
        print(e)
    except ValueError as e:
        print(e)
    except Exception as e:
        print(e)
    try...except + else:
      如果代码块无异常,则执行else代码块
      如果代码块有异常,则else代码块不执行
    try...except + finally:
      不管代码块有没有异常,finally代码块都会被执行
    finally代码块通常是做清理工作的
    *************主动触发的异常******
    try:
        raise TypeError('类型错误')
    except Exception as e:
        print(e)
    
    ************自己定义的异常*******
    class AnnException(BaseException):#自己定义的异常通常都要继承BaseException
        def __init__(self,.mes):
            self.mes=mes
       def __str__(self):
        return self.mes
    try:
      raise AnnException('类型错误')
    except AnnException as e:
      print(e)
    **************断言*********** def test(): res=1 return 1 r=test() assert r=1#根据r的值对下面代码进行处理

     try...except的好处:

      1:把错误代码和工作代码分开

      2:代码易组织,更清晰,复杂工作易实现

      3:相对安全,程序不容易崩溃

     
  • 相关阅读:
    tomcat集群--单tomcat多实例
    nginx 轮询模式 nginx_upstream_jvm_route 插件安装
    nginx 反向代理配置
    HP SiteScope安装
    visualVM远程监控JVM
    robotium 测试APK<一> 建立测试工程
    jmeter的http post请求与测试Java请求
    第 10 天
    第 1~8 天复习
    第 9 天 python操作mysql数据库
  • 原文地址:https://www.cnblogs.com/gl-gl/p/9231821.html
Copyright © 2011-2022 走看看