一文读懂Python异常

简介: 一文读懂Python异常

1什么是异常?


异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行


2 python中常见异常


关键字:try、except、finally、else、raise

python中捕捉异常模块try/except,其中python中有一些自定义的异常,具体如下

  • AttributeError 调用不存在的方法引发的异常
  • EOFError 遇到文件末尾引发的异常`
  • ImportError 导入模块出错引发的异常
  • IndexError 列表越界引发的异常
  • IOError I/O操作引发的异常,如打开文件出错等
  • KeyError 使用字典中不存在的关键字引发的异常
  • NameError 使用不存在的变量名引发的异常
  • TabError 语句块缩进不正确引发的异常
  • ValueError 搜索列表中不存在值引发的异常
  • ZeroDivisionError 除数为零引发的异常


3异常的捕获


try:
except Exception:
finally:


  • 自定义异常


# 自定义异常类
class AgeError(Exception):
    def __init__(self, age):
        self.__age = age
    # 重写str方法
    def __str__(self):
        return "您传入的年龄不满足需求:age=%d" % self.__age
age =10
try:
    raise AgeError(age)
except Exception as e:
    print(e)

image.pngtraceback.print_exc()实现 通过 系统角度 打印后继续执行
这样捕捉到异常后程序还会继续往后执行,如果不捕捉的话,那么抛出该运行时异常程序则会中断
image.png
注:实体类中 要有__enter__ __exit__函数,分别 负责初始化以及清理工作


  • if else 异常模式


try:
<语句>        #运行别的代码
except <名字>:
<语句>        #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句>        #如果引发了'name'异常,获得附加的数据
else:
<语句>        #如果没有异常发生
  • 多异常处理
...
except(ZeroDivisionError, TypeError, NameError):
...
  • try-finally 语句
    任何情况下都会执行finall中的语句
try:
<语句>
finally:
<语句>    #退出try时总会执行
raise
  • with as取代try-finally
  • 要求
    with所求值的对象必须有一个__enter__()方法,一个__exit__()方法
with 实体类 as 返回值
  方法或函数体
class Sample:
    def __enter__(self):
        print("In __enter__()")
    def __exit__(self, type, value, trace):
        print("In __exit__()")
S=Sample()
with S as sample:
    raise Exception("错误出现")

image.png


4 异常跟踪


try:
    c = 1 / 0
except Exception as e:
    #收集出现的错误
    info = sys.exc_info()
    #跟踪该错误信息,limit参数为打印跟踪的条目
    traceback.print_tb(info[2])
    print(info)

image.png

  • 补充一下 日志打印 用 log


相关文章
|
17天前
|
Python
Python基础教程(第3版)中文版 第8章 异常(笔记)
Python基础教程(第3版)中文版 第8章 异常(笔记)
|
2月前
|
Python
【Python进阶(一)】——异常与错误
【Python进阶(一)】——异常与错误
|
2月前
|
索引 Python
Python中的异常处理与自定义异常
Python中的异常处理与自定义异常
22 0
|
11天前
|
编译器 索引 Python
Python常见异常类型说明及触发代码示例
开发过程中需要根据具体情况选择处理异常,并使用try-except语句来捕获并处理异常,从而保证程序的健壮性和稳定性。在Python中,异常是程序执行期间发生的错误或意外情况。当解释器遇到异常时,会停止程序的正常执行,并在控制台输出异常的相关信息。Python中有许多不同的异常类型,每个异常类型表示不同的错误或意外情况。OSError:操作系统产生的异常(例如打开一个不存在的文件)。AttributeError:尝试访问一个对象没有的属性。UnicodeError:Unicode相关的异常。
17 5
|
16天前
|
Python
python执行elasticsearch异常【已解决】
python执行elasticsearch异常【已解决】
15 2
|
16天前
|
存储 Python
Python零基础入门-8 错误和异常
Python零基础入门-8 错误和异常
|
2天前
|
机器学习/深度学习 人工智能 程序员
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
3 0
|
2月前
|
Python
Python文件的异常、模块与包
Python文件的异常、模块与包
17 3
|
2月前
|
Python
Python基础 笔记(十) 文件操作、异常、模块
Python基础 笔记(十) 文件操作、异常、模块
35 3