Python异常传播

简介: Python异常传播

异常传播

[TOC]

目录:

一、异常的传播

二、抛出的异常

一、异常的传播

一个出现在全局,一个出现在函数就两种可能

当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再继续传播,

如果函数中没有对异常进行处理,则异常会继续向函数调用处传播,

如果函数调用处处理了异常,则不再传播,如果没有处理则继续向调用处传播

直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并且显示异常信息

def fn() :
   print('Hello fn')
   print(10/0)
def fn2():
   print('Hello fn2')
   fn()
def fn3():
   print('Hello fn3')
   fn2()

fn3()

二、抛出的异常

当程序运行过程中出现异常以后,所有的异常信息会被保存一个专门的异常对象中,

而异常传播时,实际上就是异常对象抛给了调用处

比如:

ZeroDivisionError 类的对象专门用来表示除0的异常
NameError 类的对象专门用来处理变量错误的异常

在 Python 为我们提供了多个异常对象

有很多很多一系列的错误。

https://docs.python.org/zh-cn/3/library/exceptions.html
目录
相关文章
|
2月前
|
测试技术 开发者 Python
对于Python中的异常要如何处理,raise关键字你真的了解吗?一篇文章带你从头了解
`raise`关键字在Python中用于显式引发异常,允许开发者在检测到错误条件时中断程序流程,并通过异常处理机制(如try-except块)接管控制。`raise`后可跟异常类型、异常对象及错误信息,适用于验证输入、处理错误、自定义异常、重新引发异常及测试等场景。例如,`raise ValueError("Invalid input")`用于验证输入数据,若不符合预期则引发异常,确保数据准确并提供清晰错误信息。此外,通过自定义异常类,可以针对特定错误情况提供更具体的信息,增强代码的健壮性和可维护性。
|
2月前
|
Python
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
62 5
|
2月前
|
Python
在Python中,自定义函数可以抛出自定义异常
在Python中,自定义函数可以抛出自定义异常
55 5
|
2月前
|
存储 开发者 Python
自定义Python的异常
自定义Python的异常
23 5
|
3月前
|
存储 索引 Python
|
6月前
|
Unix API Python
【Python】已完美解决:(Python3.8异常)AttributeError: module ‘time‘ has no attribute ‘clock‘
【Python】已完美解决:(Python3.8异常)AttributeError: module ‘time‘ has no attribute ‘clock‘
121 0
|
3月前
|
Python
Python生成器、装饰器、异常
【10月更文挑战第15天】
|
3月前
|
设计模式 安全 JavaScript
Python学习八:面向对象编程(下):异常、私有等
这篇文章详细介绍了Python面向对象编程中的私有属性、私有方法、异常处理及动态添加属性和方法等关键概念。
31 1
|
4月前
|
人工智能 数据可视化 搜索推荐
Python异常模块与包
Python异常模块与包
|
3月前
|
开发者 索引 Python
Python常见的异常总结
Python 中的异常是一个非常广泛的主题,因为它包含许多内置的异常类型,这些类型可以处理各种运行时错误。
52 0