C#中的Noexcept等价

时间:2011-11-01 08:19:26

标签: c# .net exception language-features

我想问一下C#analogue for C ++“noexcept”属性是否存在不产生任何异常的方法。这样的事情:

    public int SomeMethod() noexcept
    {
     throw new ArgumentNullException (); //Compile error: Method with 'noexcept' 
attribute can't generate exceptions.
    }

当我想在我的代码中调用此方法时,我不需要考虑此方法的try / catch块。

1 个答案:

答案 0 :(得分:3)

据我所知,在C#中没有类似的东西(虽然我不是100%)。关于它的使用;在编写干净的代码时,您应该只处理异常以及您希望它们发生的位置。这样可以使程序的流程和控制更易于管理。

如果您不知道在方法期间可能发生的异常,或者您发现的异常,那么您需要确定该异常是否被认为是关键的(因为它应该< / em>导致应用程序失败);或者是否应该在代码中专门处理。