C # Проверенные исключения - PullRequest
1 голос
/ 25 марта 2010

Одна особенность, которая мне действительно понравилась в Java, а не в C #, это проверенные исключения . Есть ли способ имитировать (возможно, с помощью stylecop?) Или включить проверенные исключения в Visual Studio?

Да, я знаю, что многие люди не любят их, но я считаю, что они могут быть полезны.

Ответы [ 3 ]

14 голосов
/ 25 марта 2010

Насколько я знаю, в C # нет способа делать проверенные исключения. Эта функция (или ошибка, в зависимости от того, как вы на нее смотрите :)) не поддерживается языком.

Лучше всего было бы добавить XML-комментарии к вашему методу, включить в него исключения и надеяться, что тот, кто вызывает ваш код, читает документацию.

Примерно так:

/// <summary>
/// This is my method that does stuff.
/// </summary>
/// <exception cref="InvalidOperationException">This stuff can't be done!</exception>
public void DoStuff() 
{
    // do stuff
}
2 голосов
/ 25 марта 2010

Могу поспорить, что вы могли бы использовать такой инструмент, как PostSharp для реализации проверенных исключений. Что-то вроде:

[Throws(typeof(MyExpection))]
public void Method()
{
   throw new MyException();
}

Не уверен, что что-то подобное уже существует в PostSharp или какой-то другой AOP платформе (и причины, по которым разработчики .NET не любят проверенные исключения, все еще остаются в силе), но я уверен, что это будет можно сделать.

0 голосов
/ 30 сентября 2018

К вопросу: «Есть ли способ симулировать (возможно, с помощью stylecop?) Или включить проверенные исключения в Visual Studio?» - Да: попробуйте это расширение Visual Studio: https://marketplace.visualstudio.com/items?itemName=YoavFrandzel.CheckedExceptions

...