Сначала объясните, почему вы получаете несколько ошибок. Первой ошибкой будет попытка оперировать нулевым объектом, скорее всего, в вашей модели или контроллере. Тогда вы, вероятно, получите 2-е исключение, когда представление пытается привязаться к нулевому объекту, когда оно ожидает, что объект существует. Не совсем уверен, почему вы получаете 4 ошибки, но это может быть связано с тем, что код пытается обработать объект, который в настоящее время равен нулю.
Моим первым предложением было бы, чтобы ваш код OnException перенаправлял приложение на дружественную страницу ошибок. Вы, вероятно, просто съедаете каждое новое исключение и не позволяете web.config правильно обрабатывать страницы ошибок, если у вас есть такая настройка для отображения страницы ошибок.
Мое второе предложение - добавить некоторый код для проверки на наличие нулевых объектов, прежде чем работать с ними. Их обычно называют пунктами охраны, и они очень полезны и полезны для реализации. Затем вы можете выбрать удобный способ обработки ошибок, не регистрируя при этом исключение, если вам это не нужно, а также отображать дружественное сообщение для пользователя, помимо общего «Произошла ошибка». сообщение.
Например, в вашем контроллере вы можете проверить наличие нулевого объекта и передать альтернативное представление пользователю, если этот объект равен нулю
Function Example As ActionResult
dim obj as Object = GetObject
If obj is Nothing Then
Return View("FriendlyNoObjectView")
Else
Return View(obj)
End If
End Function
Я знаю, что это vb (извините, я знаю, что лучше, чем c #), но идея та же. Если вы хотите, вы все равно можете зарегистрировать это как ошибку, но тогда вы предотвратите повторение ошибки много раз. Всегда полезно обрабатывать ошибку, когда она возникает, и стараться не допускать, чтобы она всплывала до самого верха стека и вызывала множество других ошибок.
Надеюсь, это поможет, это были только мои быстрые мысли от прочтения вашего вопроса.