考虑执行流程时,异常的反面是啥?

Posted

技术标签:

【中文标题】考虑执行流程时,异常的反面是啥?【英文标题】:What is the opposite of an Exception when considering execution flow?考虑执行流程时,异常的反面是什么? 【发布时间】:2019-04-19 02:48:24 【问题描述】:

我标记了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')
在这种情况下,“exception”是否有反义词? 这真的可以称为“成功”,而前一个区块称为“成功”吗? 我们拥有最好的“无一例外”吗?

这两种路径都可以用于最终成功的代码块,堆栈中更高的函数可能不知道正在发生的异常,所以我主要对这个位置感兴趣......当一个特定的块 可以引发(并且可能处理)异常不...

【问题讨论】:

不要忘记,一段代码可能会在其中引发异常,但它们会被成功处理(无论是由自身还是在堆栈中更远的位置),这意味着它可以继续并成功完成其任务,即使得到一路上比预期的要棘手...... 我认为您正在确认我的“两个流程都不能成为最终成功流程的一部分吗?”问题......这很好。我将添加单词以将范围限制为“本地”代码。 我认为这个问题与语义有关。在搜索词库中的反义词之前,我建议 expectedexception 的反义词:thesaurus.com 建议,除其他外(我的未列出),“正常”。为了与争论的语义保持一致,我想说一个人可以成功处理异常。但是,根据定义,异常是意料之外的事情,应该被认为是“不成功的”。 @AndrewFalanga:从语义上讲,它可能是“初始”。 【参考方案1】: 在这种情况下,“异常”是否有反义词?

不是真的。我们假设“默认”是一切运行良好。毕竟,例外是例外。

这真的可以称为“成功”,而前一个区块不称为“成功”吗? 难道这两个流程都不能成为最终成功流程的一部分吗?

这两者都取决于这样一个事实,即异常的不同用法具有不同的目的——因此“成功”的不同含义,即使在同一个程序中也是如此。例如:我们想读取一个文件,如果它不存在就创建它。因此,您尝试打开一个不存在的文件,这会引发异常。打开该文件是“不成功的”,但这只是意味着我们需要创建它。由于这是我们打算或打算发生的事情,因此程序仍然可以成功退出。

“无一例外”是我们拥有的最好的吗?

对我来说这听起来很合理。

【讨论】:

【参考方案2】:
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")

【讨论】:

以上是关于考虑执行流程时,异常的反面是啥?的主要内容,如果未能解决你的问题,请参考以下文章

以下PHP脚本的执行流程是啥? [复制]

AOP执行流程

Java异常处理机制:try...catch...的执行流程

异常的执行流程

springmvc怎么在启动时自己执行一个线程

activiti流程引擎如果执行serviceTask时出现异常会怎么处理?