zoukankan      html  css  js  c++  java
  • python学习笔记5_异常

    目录


    python学习笔记5_异常

    1、什么事异常

            Python使用异常对象(exception object) 来表示异常情况。遇到错误会发生异常。

            如果异常对象未被处理或被捕捉,程序就会用所谓的回溯(traceback,一种错误信息)终止执行。

            每个异常都是一些类的(本例中是ZeroDivisionError)实例,这些实例可以被引发,并且可以用很多种方式进行捕捉,使程序捕捉异常并处理异常,从而避免整个程序崩溃。

    2.、按自己的方式出错

           所有的异常类,都是Exception的子类。

       2.1、raise

            要引发异常,要么是Exception的子类。或者实例参数调用raise。

            返回,没有任何有关错误信息的普通错误。返回,一些有关“hyperdrive overload”的错误信息。

    •         Exception   所有异常的基类
    •         AttributeError   特性引用或赋值失败时引发
    •         IOError   试图打开不存在文件(包括其他情况)时引发
    •         IndexError  在使用序列中不存在的索引时引发
    •         KeyError    在使用映射中不存在的键时引发
    •         NameError 在找不到名字(变量)时引发
    •         SyntaxError 在代码为错误形式时引发
    •         TypeError 在内建操作或者函数应用于错误类型的对象时引发
    •         ValueError 在内建操作或者函数应用于正确类型对象,但是该对象使用不合适的值时引发。
    •         ZeroDivisionError 在除法或者模除操作的第二个参数为0时引发

         自定义异常类 

          Class SomeCustomException(Exception):pass

      3、捕获异常

            这个功能可以使用 try/except来实现。

              如果捕获了异常,但又想重新引发它(也就是说传递异常),那就可以调用不带参数的raise。

      4、多个except子句

           因为继承eccept的字异常类有很多,如果只捕获一种错误(上例 捕捉ZeroDivisionError,如果除数为0正常被过捕获,当除数是一个字符串的时候那就回引发TypeError的错误,就被漏掉。),引其他错误将被漏掉。

            

    5、用一个块捕获多个异常

            用一块捕获多个类型的异常,可以把异常类型作为元祖列出。

           

    6、捕获对象

            希望在except子句中访问异常对象本身,可以使用两个参数。

          

    7、全捕捉

             一段代码捕捉所有的异常。可以使用except子句中忽略所有异常类。

    隐藏所有的错误是很危险的事情,因为会异常所有程序员想不到的错误。

    8、万事大吉----else子句

            try:

                    print('正常代码块 ')

             except:

                    print('当发生异常的时候执行。')

            else:

                     print('这是一个没有任何异常的程序。')

    9、最后。。。。。。

         最后,是Finally子句。它可以用来在可能的异常后进行清理。

          注意在2.5以前的版本中,finally是独立的,不能组合使用,2.5以后的版本可以随意使用了。

    10、异常和函数

           异常和函数能很自然的一起工作。如果异常在函数内部引发而不被处理,它就会传播至(浮到)调用的地方。,如果在那里也没处理异常,它就会继续传播,一直到达主程序(全局作用域)

          如果那里没有异常处理程序,程序会带这堆栈跟踪中止。

  • 相关阅读:
    Android开发入门经典【申明:来源于网络】
    Java 的局部变量和成员变量
    js数组基础知识链接
    mongodb学习笔记2
    docker离线安装
    mongodb学习笔记
    jupyter notebook安装
    执行docker ps命令挂住问题分析
    keras安装简介(windows)
    mybatis查询日期和log4j2配置
  • 原文地址:https://www.cnblogs.com/Blogs-Wang/p/7460993.html
Copyright © 2011-2022 走看看