2010-03-25 6 views
2

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

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

+10

Язык C# создатели не хотели проверенные исключения: http://www.artima.com/intv/handcuffs.html –

+0

Кажется, как это должно быть выполнимо с помощью StyleCop, я загляну в него –

ответ

14

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

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

Что-то вроде этого:

2

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

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

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