@beduin01

Где лучше бросать исключения?

Никак не могу понять где лучше бросать исключения.
Прога при старте читает Config.ini Если он не найден, то нет смысла продолжать.

Я не могу понять как правильнее обработать этот сценарий. В классе ReadConfig если файл не найден мы бросаем исключение.
try
{
пробуем прочитать
если не получилось, то
бросаем исключение throw new Exception
}

catch()
{
при таком коде мы исключение поймаем в этом блоке
}

Тогда получается тут блок try-catch не имеет смысла и нужно в main там где я создаю экземпляр читалки Конфига все оборачивать и в блоке catch там ставить return чтобы прервать работу приложения.

Или как правильнее сделать то?
}
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 3
@kempendyi
.net Framework C# WPF WinForms WCF EntityFramwork
На самом деле, Вы можете перехватить исключение и сформировать некий код ошибки,
и вернуть на уровень вверх, а затем в вызывающем коде проанализировать его и сделать вывод о том что Ваш файл не найден.

Отвечая на вопрос, тут я бы его не бросал, ибо это ожидаемый юз кейс работы вашего приложения, а именно конфиг не найден.
Ответ написан
yamaoto
@yamaoto
la programmeur
Если это происходит внутри конструктора то ошибку нужно оформить только через throw.
А вот если твой класс ReadConfig читает конфиг с вызова его метода, то там можно вернуть null если что-то пошло не так. Такой вариант удобен чтобы не засорят код в местах вызова.

А вот если, например, файл считался, но в формате конфига или в значениях есть ошибки, то через throw можно передать пояснения к ошибке и их уже вывести пользователю или в логи.
Ответ написан
Правила разработки исключений

Показывай окно ошибки как на программах обычных.
Класс который должен вернуть конфиг может как выбрасывать исключение, так и не делать этого используя подход TryXXX().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы