Я предполагаю, что у вас есть веб-приложение, а не веб-API - потому что это не указано в вашем коде.
В ядре Asp.net вы можете настроить промежуточное ПО обработки ошибок:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
Тогда вы можете иметь контроллер ошибок, как показано ниже, который возвращает представление на основе типа исключения.
[AllowAnonymous]
public IActionResult Error()
{
var exceptionHandlerPathFeature =
HttpContext.Features.Get<IExceptionHandlerPathFeature>();
if (exceptionHandlerPathFeature?.Error is FileNotFoundException)
{
ExceptionMessage = "File error thrown";
}
if (exceptionHandlerPathFeature?.Path == "/index")
{
ExceptionMessage += " from home page";
}
// Either show exception message on page or return different views based on conditions.
}
Надеюсь, что это поможет!
СОВЕТ - даже если у вас есть веб-API, вы можете вернуть API кодов бизнес-ошибок из пользовательского интерфейса, и тогда пользовательский интерфейс может показать соответствующийсообщения об ошибках, основанные на этих кодах.
Ссылка: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-3.0