我已经标记了python,因为这就是我正在使用的标记,并且周围可能有特定的术语,但是如果这个问题也适用于其他语言,我也不会感到惊讶。
请考虑以下内容:
try:
raise Exception()
except Exception as e:
print('oh no')
print('done')
在这里,我们会说“ 引发了异常”,或者在print('oh no')
,我们是“ 处理异常”。>
我们使用什么术语来讨论以下流程? (没有异常发生时)
try:
pass
except Exception as e:
print('oh no')
print('done')
这两个路径都可以用于最终成功的代码块,并且堆栈中较高的函数可能不知道正在发生的异常,因此我主要对这种局部性感兴趣……当特定的块em>可以引发(并可能处理)异常不会...
答案 0 :(得分:2)
不是。我们假设“默认”是一切正常。毕竟,例外是例外。
这两种情况都取决于这样一个事实,即异常的不同用法具有不同的目的-因此,即使在同一程序中,“成功”的含义也不同。例如:我们想读取一个文件或创建一个不存在的文件。因此,您尝试打开一个不存在的文件,这会引发异常。打开该文件“未成功”,但这仅意味着我们需要创建该文件。由于这是我们打算做或打算发生的事情,因此程序仍然可以成功退出。
这对我来说听起来很合理。
答案 1 :(得分:1)
try:
pass
except Exception as e:
print('oh no')
else:
print("No worries! nothing was excepted!!! :)")
finally:
print("This will always print!! regardless of exception!... even if you return from inside the try/except/or else")