Python 获取异常信息案例和异常继承体系

2020-02-282114
AI 快速预览详细 收起
本文介绍了Python中的异常处理方法,通过一个具体的列表访问错误示例,展示了如何使用try-except结构捕获异常,并通过traceback模块获取详细的异常信息。文章还详细介绍了Python的异常继承体系,包括BaseException、Exception及其子类。这些内容有助于开发者更好地理解和处理代码中的异常情况。
Python 获取异常信息案例和异常继承体系
平时编写代码时,经常会出现异常错误信息,我们希望知道出现异常信息的原因、位置、类型等具体情况,这样对我们的编程非常重要,可以根据异常信息进行调试、完善代码。也有助于我们对软件使用的情况。
1、           Python 获取异常信息案例
基本格式:
#try:
    #有可能出现异常的程序代码
#except:
    #如果出现异常被执行的代码
具体代码:
import traceback
list1=[11,22,33,44,55,66,77]
try:
    print(list1[10])
except Exception as e:
    print('访问列表时出现异常,请联系管理员')
    print(e)  #返回基本异常信息
    print(str(e)) #返回基本异常信息
    print(e.args[0]) #返回基本异常信息
    print(repr(e))  #返回异常的基本信息和异常类型
   print(traceback.format_exc())#返回异常的详细信息
    #将异常信息写入指定的日志错误文本文件
    traceback.print_exc(file=open("D:\\learn\杭州电子科技大学\python学习笔记\encode\systemlog_error.txt","w"))
  
Python 获取异常信息案例和异常继承体系图1
Python 获取异常信息案例和异常继承体系图2

将异常信息写入指定的日志错误文本文件,所写入的信息


Python 获取异常信息案例和异常继承体系图3
附上网上搜来的
2Python 异常继承体系(versionpython3.4
以下是按照 The Python Standard Library  翻译
The classhierarchy for built-in exceptions is:
BaseException 所有内建的异常的基类
+-- SystemExit sys.exit()函数引发。当它不处理时,Python 解释器退出
+-- KeyboardInterrupt 当用户点击中断键 (通常ctrl + C 时引发
+-- GeneratorExit 当调用一种generatorclose()方法时引发。它直接继承BaseException而不是Exception,因为它是从技术上讲不是一个错误。
+-- Exception 所有内置的、 非系统退出异常是从该类派生的。应该从该类派生所有用户定义的异常。
      +-- StopIteration
      +-- ArithmeticError
      |   +-- FloatingPointError
      |   +-- OverflowError
      |   +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError 当缓冲区相关的操作无法执行时引发
      +--EOFError input()函数在文件尾(EOF)的条件下没有读到任何数据时被引发
      +-- ImportError import语句无法找到模块定义时引发
      +-- LookupError 当用于映射或序列的键或索引无效时引发
      |   +-- IndexError
      |   +-- KeyError
      +-- MemoryError OOM时被引发,但是其状态仍然能被拯救
      +-- NameError 当一个局部或者全局的名字没有找到时被引发
      |   +-- UnboundLocalError
      +-- OSError 当一个系统函数返回一个与系统相关的错误时引发。
      |   +-- BlockingIOError
      |   +-- ChildProcessError
      |   +-- ConnectionError
      |   |    +-- BrokenPipeError
      |    |   +-- ConnectionAbortedError
      |   |    +-- ConnectionRefusedError
      |   |    +-- ConnectionResetError
      |   +-- FileExistsError
      |   +-- FileNotFoundError
      |   +-- InterruptedError
      |   +-- IsADirectoryError
      |    +-- NotADirectoryError
      |   +-- PermissionError
      |   +-- ProcessLookupError
      |   +-- TimeoutError
      +-- ReferenceError 当访问一个已经被GC的对象时被引发
      +-- RuntimeError 当一个错误不能被其他所有的错误检测到时被引发
      |   +-- NotImplementedError
      +-- SyntaxError 当解析器遇到语法错误时引发。非运行时错误。
      |   +-- IndentationError
      |        +-- TabError
      +-- SystemError 当解释器发现一个内部错误时引发
      +-- TypeError 当一个操作符或者函数应用到一个不合适的对象时引发
      +-- ValueError 当一个内置操作符或函数接收到一个类型正确但是值不合适的时候被引发
      |   +-- UnicodeError
      |        +-- UnicodeDecodeError
      |        +-- UnicodeEncodeError
      |        +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning









创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
DFrJ5KYVQaH
DFrJ5KYVQaH
好文章学习中
- 没有更多了 -