我想问一下C#analogue for C ++“noexcept”属性是否存在不产生任何异常的方法。这样的事情:
public int SomeMethod() noexcept
{
throw new ArgumentNullException (); //Compile error: Method with 'noexcept'
attribute can't generate exceptions.
}
当我想在我的代码中调用此方法时,我不需要考虑此方法的try / catch块。
答案 0 :(得分:3)
据我所知,在C#中没有类似的东西(虽然我不是100%)。关于它的使用;在编写干净的代码时,您应该只处理异常以及您希望它们发生的位置。这样可以使程序的流程和控制更易于管理。
如果您不知道在方法期间可能发生的异常,或者您发现的异常,那么您需要确定该异常是否被认为是关键的(因为它应该< / em>导致应用程序失败);或者是否应该在代码中专门处理。