При написании кода я довольно часто временно вставляю случайные исключения, чтобы гарантировать, что поток ошибок соответствует ожидаемому.
например
public void SomeFunc()
{
Console.WriteLine("Some code");
throw new Exception("BOOOOM!"); //added temporarily
Console.WriteLine("Some more code");
}
Проблема в том, что у меня есть предупреждения, установленные как ошибки, поэтому компиляция не удастся с CS0162 Обнаружен недоступный код , так как "Some more code" никогда не будет запущен.
Поэтому просто добавьте условие, которое вы говорите:
public void SomeFunc()
{
Console.WriteLine("Some code");
if (true)
throw new Exception("BOOOOM!"); //added temporarily
Console.WriteLine("Some more code");
}
но нет, этот компилятор достаточно умен, чтобы заметить, что условие всегда будет истинным, и снова помечает CS0162.
Обычно я получаю следующее:
public void SomeFunc()
{
Console.WriteLine("Some code");
var debug = true;
if (debug)
throw new Exception("BOOOOM!"); //added temporarily
Console.WriteLine("Some more code");
}
Так что я простаиваю вопрос, так как я ленивый, есть ли более простой способ обмануть компилятор? Один лайнер был бы идеальным.
(И да, я в конце концов пишу юнит-тесты;)