Microsoft предоставляет этот пример для ExceptionHandlerMiddleware
здесь .Это выдержка:
app.UseExceptionHandler(errorApp =>
{
errorApp.Run(async context =>
{
...
var exceptionHandlerPathFeature = context.Features.Get<IExceptionHandlerPathFeature>();
if (exceptionHandlerPathFeature?.Error is FileNotFoundException)
{
await context.Response.WriteAsync("File error thrown!");
}
...
});
});
Я не могу понять, почему они используют оператор ?.
для получения исключения?Может ли этот делегат быть активирован без IExceptionHandlerPathFeature
?Не представляется логичным иметь обработчик исключений без гарантированного доступа к исключению.
Здесь - это код, и, по-видимому, в нем нет нуля.