C#:你举起或抛出一个例外吗?

时间:2009-06-12 09:28:07

标签: c# exception terminology throw raise

我知道这可能并不重要,但我想知道什么是正确的。

如果一段代码包含某些版本的throw new SomeKindOfException()。我们是否说这段代码可能引发异常?或抛出异常?

关键字是throw,所以我倾向于这一点,但提出异常也会使用很多......

他们有某种不同的含义吗?其中一个是否与另一个有所不同?或者它只是两个词意味着完全相同的东西?

5 个答案:

答案 0 :(得分:26)

在C#术语中,提升用于事件上下文, throw 用于例外情况。

就我个人而言,我认为throw/catch组合比raise/catch更美观。

答案 1 :(得分:3)

我不能代表C#,但在C ++中选择“throw”是因为“raise”已经被视为标准函数名称。

答案 2 :(得分:1)

我认为虽然 throw 是更好的,但这两个术语是可以互换的。如果你必须在某些文本中使用它两次非常有用,这样你就可以避免重复相同的单词。但这是文体学,对于技术写作来说并不是必需的(但仍然是一件好事)。

答案 3 :(得分:1)

各种语言的术语都倾向于“抛出”。我同意'throw'更有意义,因为这是使用的关键字,编译器/语言文档总是引用异常被“抛出”。

然而,在庞然大物的腹部,异常实际上是Raised,而不是抛出。如果你在调试器中发现自己已经足够深入了解EXCEPTION_RECORD那么你会在SEH的术语中进行讨论,其中特定类的编译器/语言异常(eh, clr, vcpp)只是其中之一许多口味例外来了。我认为引发异常的原始条件,如页面错误和堆栈溢出,是内核“注意到”通知'条件的用户模式的条件,而不是用户代码“抛出”自己的异常,所以这个术语在这种情况下更有意义。

答案 4 :(得分:0)

投掷或加注似乎没问题,对我来说意味着同样的事情。我不会写它,但是当我说话时,我通常会说'查看例外'。

对于活动,我会使用“开火活动”或“举办活动”。