У меня есть веб-API 2 действия контроллера, который возвращает список пользователейОбработка исключений: что должен вернуть контроллер?
public List<User> GetAll()
{
try
{
return _businessLogic.GetAll();
}
catch (Exception ex)
{
ExceptionHelper.HandleException(ex, _logger, ControllerContext);
}
}
class ExceptionHelper {
public static void HandleException(Exception ex, ILogger _logger, HttpControllerContext controllerContext) {
_logger.LogError(ex);
// If possible handle the exception here
// Code for handling
// Throw it again
throw new HttpResponseException(
controllerContext.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, errorMessagError)
);
}
}
C# компилятор жалуется, что не все кодовые пути в GetAll()
возвращает значение. Дело в том, что я не хочу ничего возвращать, когда возникает исключение, потому что HandleException
регистрирует ошибку и снова генерирует исключение. Как я могу прямо сказать, что я ничего не хочу возвращать.
Вы уверены, что хотите вообще обрабатывать исключения? Как вы планируете обрабатывать '_businessLogic.GetAll()' исключения? Если вы просто хотите регистрировать исключение, есть другой способ - добавить пользовательский 'IExceptionLogger'. – Dennis
Это может быть полезно: http://stackoverflow.com/questions/10732644/best-practice-to-return-errors-in-asp-net-web-api – 3615