Я недавно узнал, что в представлениях можно отлавливать исключительные ситуации. Я даже представить себе не мог, что такое возможно и пока не встречал в этом необходимости. Как я уже говорил, представления не должны содержать никакой бизнес логики, они должны только отображать данные.
В View могут быть операторы if, чтобы отображать информацию в зависимости от каких-то уже готовых условий. Могут быть операторы for, чтобы выводить информацию на экран. Но ни то и ни другое не должно вызывать исключительных ситуаций.
Когда я узнал, что в представлении можно использовать try..catch, чтобы ловить исключительные ситуации, то я обернулся назад и посмотрел – а когда я могу бы это использовать? И я не смог придумать ни единого примера. Любые расчёты должны происходить в модели или контроллерах.
Если же вы столкнулись с ситуацией, когда какой-то C# код в представлении может вызывать исключительную ситуацию, то ее можно поймать так:
@try { // код, который может сгенерировать ошибку } catch (Exception e) { <p>Произошла ошибка</p> } finally { <p>Мы попали в finally</p> }
Так как я не могу привести хороших примеров, когда это может пригодиться, я остановлюсь тут и если у тебя есть предложения, оставляй их в комментариях.