python - Python中的嵌套调用-除了所有函数之外,我是否需要尝试?
问题描述
我正在学习 python try:except 子句
我有以下调用层次结构
def A():
try:
B(some_args)
except Exception as e:
print (repr(e))
B实现如下
def B(some_args):
C(some_args)
请注意,除了在 B 内没有尝试之外,我在 C 内进行了尝试,如下所示
def C():
try:
dothis()
except exception as e:
raise e
我的问题是,如果调用层次结构中的函数之一(在这种情况下为 B)
A()
calls B()
calls C()
没有 try except 子句,A 是否仍会收到 C() 中引发的异常?
解决方案
是的,它会的。try/catch 块将捕获在 try 块内抛出的任何异常,无论它被抛出的位置有多深。
此外,您可以捕获不同级别的特定异常,因此 B 中的 catch 块可能会捕获一个抛出的异常,而 A 中的 catch 块将捕获不同的异常,每个异常都可能在 C 甚至其他一些中抛出C 调用的函数等。例如:
catch FileNotFoundException as ex:
会捕获 FileNotFoundException,但不会捕获其他异常
推荐阅读
- javascript - 比较 Javascript 中的两个数组以查找特定值
- ruby-on-rails - 在控制器中使用渲染 json 时,动态生成的哈希键无法正确显示
- arrays - 金属双指针
- r - 显示韩语的图形标签问题
- cs50 - 当我尝试获取 nflx 的报价时,我的代码告诉我符号不存在。下面是我的代码。我找不到我的错误。想法?
- mongodb - Quartz-Mongo Db Integration-索引创建问题
- c++ - 在 C++ 中,构造函数和运算符的顺序是什么?
- python - 在 Pandas 数据框中创建条件列
- ubuntu - OpenVINO 无法检测到 GPU
- javascript - 给定的邮递员测试值与预期结果匹配,但仍然出现错误