На самом деле единственная причина для этого - облегчить тестирование моего кода.
Было бы лучше использовать каркас модульного теста, такой как NUnit или Visual Studio Team Test:
Чтобы сказать, что метод должен выдать исключение, вы добавляете атрибут ExpectedException
, например:
[Test]
[ExpectedException(typeof(ArgumentException)]
public void NullUserIdInConstructor()
{
LogonInfo logonInfo = new LogonInfo(null, "P@ss0word");
}
Если вы не добавите этот атрибут, а метод сгенерирует, тест автоматически завершится неудачей.
Для полноты я также отвечу на вопрос, который вы задали: вы не можете выполнить строку, но можете передать действие в качестве параметра.
bool ThrowsException(Action action)
{
try
{
action();
return false;
}
catch
{
return true;
}
}
Вы можете использовать это так, например:
bool result = ThrowsException(() => { throw new NotImplementedException(); });