Нет, кроме эквивалентного в C # - PullRequest
4 голосов
/ 01 ноября 2011

Я хочу спросить, есть ли в C # аналог для C ++ атрибута noexcept для методов, которые не генерируют никаких исключений.Примерно так:

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

И когда я хочу вызвать этот метод в своем коде, мне не нужно думать о блоке try / catch для этого метода.

1 Ответ

3 голосов
/ 01 ноября 2011

Насколько я знаю, в C # нет ничего подобного (хотя я не на 100% в этом). Что касается его использования; при написании чистого кода вы должны обрабатывать только исключения как и где вы ожидаете их возникновения. Это позволяет намного проще управлять потоком и управлением вашей программой.

Если вы не знаете об исключении, которое может возникнуть во время метода, или возникнет исключение, которого вы не ожидали, то вам нужно определить, является ли это исключение чем-то, что считается критическим (в этом случае должно вызвать сбой приложения); или это должно быть специально обработано в коде.

...