【发布时间】:2011-11-01 08:19:25
【问题描述】:
我想问在 C# 中是否有 C++ 的“noexcept”属性用于不产生任何异常的方法。类似的东西:
public int SomeMethod() noexcept
{
throw new ArgumentNullException (); //Compile error: Method with 'noexcept'
attribute can't generate exceptions.
}
当我想在我的代码中调用这个方法时,我不需要考虑这个方法的 try/catch 块。
【问题讨论】:
-
我不相信有这样的事情。您将不得不在您的
SomeMethod中尝试 catch -
我认为这个问题有一个错字,你的意思是“noexcept”吗?
-
语言本身没有内置任何东西,您需要使用静态分析工具来强制执行这种约定..
-
@MattDavey 这可能是 Roslyn 的用例吗? blogs.msdn.com/b/ericlippert/archive/2011/10/19/…
-
C# 语言中永远不会有异常规范,Anders 会确保这一点。它们在新的 C++ 语言规范中已被弃用。
标签: c# .net exception language-features