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

    1. python解析器执行程序时,如果触发了异常,且异常没有被处理,程序就在当前异常处终止运行,抛出异常,后面的代码不会被运行,故要一种异常处理机制来增加程序的健壮性与容错性;

    2. 使用try...except处理异常

          1> try是正常逻辑业务功能代码;

          2> except 捕获异常代码发生的错误,且支持多分支;

          3> except 应该先捕获具体报错类型(VuleError,TypeError,KeyError等),再使用万能异常Exception;

          4> else:try中的代码块没有报错时,else中的代码才会被执行;

          5> finally: 不管代码是否报错,finally的代码块都会被执行的代码,一般用于函数做一些收尾工作;

          6> raise:抛出异常;

    try:
        s1=int(input('请输入一个number>>>'))
    except IndexError as e:
        print('索引错误!')
        raise e
    except KeyError as e:
        print('键值错误!')
        raise e
    except ValueError as e:
        print('传入的值错误!')
        raise e
    except Exception as e:
        raise e
    else:
        print('程序没有出错!')
    finally:
        print('程序运行结束了!')

    3. try...except应该尽量少用,因为它本身就是附加给你的程序的一种异常处理逻辑,会导致代码的可读性变差,故只在一些小段的代码中异常无法预知的情况下,才加上try...except,其他的逻辑错误应该尽量修正;

    4.   常见的异常类型:

         1> AttributeError:试图访问一个对象没有的属性;

         2> IOError:输入/输出异常,基本上是无法打开文件;

         3> ImportError:无法引入模块或包,基本上是路径问题或名称错误;

         4> IndentationError:语法错误,代码没有正确对齐;

         5> IndexError:下标索引超出序列边界;

         6> KeyError:试图访问字典中不存在的key;

         7> KeyboardInterrupt: Ctrl + c被按下; 

         8> NameError:使用了一个还未被赋予对象的变量;

         9> SyntaxError:代码非法,代码不能编译,即语法错误;

         10> TypeError:传入对象类型与要求的不符合;

         11> UnboundLocalError:试图访问一个还未设置的局部变量,基本上是由于另有一个同名的全量变量,导致你以为正在访问它;

         12> ValueError:传入一个调用者不期望的值,即使值的类型是正确的;

  • 相关阅读:
    OpenCV__Canny边缘检测和缩放(译)
    OpenCV_avi读入视频
    Canny边缘检测源码与图像结果(OpenCV2.0)
    OpenCV_累加一个三通道矩阵中的所有元素
    tomcat下出现 java.lang.OutOfMemoryError: Java heap space
    清空和截断数据库日志并收缩数据库
    java.lang.OutOfMemoryError: Java heap space 的解决
    java.lang.OutOfMemoryError: Java heap space 解决方法
    通达OA 2008 工作流数据库表的大致结构
    java获取本月的第一天和最后一天
  • 原文地址:https://www.cnblogs.com/quiet-sun/p/12316515.html
Copyright © 2011-2022 走看看