我知道这可能并不重要,但我想知道什么是正确的。
如果一段代码包含某个版本的throw new SomeKindOfException()
. 我们是否说这段代码可能会引发异常?还是抛出异常?
关键字是throw
,所以我有点倾向于那个,但也经常使用引发异常......
它们有某种不同的含义吗?其中一个是否暗示了与另一个的差异?还是只是两个词的意思完全一样?
我知道这可能并不重要,但我想知道什么是正确的。
如果一段代码包含某个版本的throw new SomeKindOfException()
. 我们是否说这段代码可能会引发异常?还是抛出异常?
关键字是throw
,所以我有点倾向于那个,但也经常使用引发异常......
它们有某种不同的含义吗?其中一个是否暗示了与另一个的差异?还是只是两个词的意思完全一样?
在 C# 术语中,引发用于事件上下文,抛出用于异常上下文。
个人觉得throw/catch
组合比raise/catch
..
我不能代表 C#,但在 C++ 中选择了“throw”,因为“raise”已被视为标准函数名称。
我认为虽然throw更好,但这两个术语是可以互换的。如果您必须在某些文本中使用它两次以避免重复相同的单词,则非常有用。但这是技术写作所不需要的文体(但仍然是一件好事)。
各种语言的术语都有利于“投掷”。而且我同意“抛出”更有意义,因为这是使用的关键字,并且编译器/语言文档总是提到异常被“抛出”。
但是,在庞然大物的肚子里,异常实际上是Raised,而不是抛出。如果您发现自己在调试器中足够深入地盯着EXCEPTION_RECORD,那么您会使用SEH的术语,其中特定的编译器/语言异常类(eh、clr、vcpp)只是众多异常类型中的一种。我猜想引发异常的原始条件(例如页面错误和堆栈溢出)是内核“注意到”的条件,即“通知”用户模式的条件,而不是用户代码“抛出”到自己身上的异常,因此该术语在这种情况下更有意义。
投掷或加注似乎都很好,它们对我的意义相同。我不会写它,但是当我说话时,我通常会说“查出异常”。
对于事件,我会使用“触发事件”或“引发事件”。