Если я добавлю следующую строку к методу действия ASP.NET MVC
throw new Exception("outer", new SecurityException("inner"));
, ошибка, которая фактически отображается на желтом экране смерти, будет внутреннее SecurityException без упоминания внешнего исключения.
SecurityException
Описание: приложение пыталось выполнить операцию, не разрешено политикой безопасности. Чтобы удовлетворить эту заявку требуется разрешение, обратитесь к системному администратору или измените уровень доверия приложения в файле конфигурации.
Сведения об исключении: System.Security.SecurityException: inner
Ошибка источника:
Необработанное исключение было создано во время выполнения текущий веб-запрос. Информация о происхождении и местонахождении исключение можно определить с помощью трассировки стека исключений ниже.
Трассировка стека:
[SecurityException: inner]
Это ожидаемое поведение?
Кажется, не имеет значения, к какому типу относится внешнее исключение. Даже если это другое исключение SecurityException, сообщение никогда не отображается. Сообщение об ошибке SecurityException по умолчанию настолько расплывчато, что я хочу поймать его и добавить более конкретную информацию. Это нормально работает, если я не включаю исходное SecurityException в качестве innerException, но в идеале я бы хотел это сделать.