Назад к вопросам
Junior
13
Если нельзя кидать Error, но хотим обернуть исключение — что использовать?
Компании, где спрашивали
ИП Ганус Александр Андреевич
Ответ от нейросети
sobes.tech AI
Если в вашем коде нельзя выбрасывать исключения (throw), но нужно обработать ошибку и передать информацию об исключении дальше, можно использовать паттерн обёртки ошибки в объект или структуру с полями для кода ошибки и сообщения.
Например, создать класс или структуру Result, которая содержит:
- флаг успеха (bool IsSuccess)
- сообщение об ошибке (string ErrorMessage)
- дополнительные данные (если нужно)
Вместо выбрасывания исключения метод возвращает такой объект, и вызывающий код проверяет результат:
public class Result {
public bool IsSuccess { get; set; }
public string ErrorMessage { get; set; }
}
public Result DoWork() {
try {
// код
return new Result { IsSuccess = true };
} catch (Exception ex) {
// обернуть исключение в Result
return new Result { IsSuccess = false, ErrorMessage = ex.Message };
}
}
Таким образом, исключение не выбрасывается, а передаётся как часть результата.