3.6. Исключительные ситуации в представлениях

Я недавно узнал, что в представлениях можно отлавливать исключительные ситуации. Я даже представить себе не мог, что такое возможно и пока не встречал в этом необходимости. Как я уже говорил, представления не должны содержать никакой бизнес логики, они должны только отображать данные.

В View могут быть операторы if, чтобы отображать информацию в зависимости от каких-то уже готовых условий. Могут быть операторы for, чтобы выводить информацию на экран. Но ни то и ни другое не должно вызывать исключительных ситуаций.

Когда я узнал, что в представлении можно использовать try..catch, чтобы ловить исключительные ситуации, то я обернулся назад и посмотрел – а когда я могу бы это использовать? И я не смог придумать ни единого примера. Любые расчёты должны происходить в модели или контроллерах.

Если же вы столкнулись с ситуацией, когда какой-то C# код в представлении может вызывать исключительную ситуацию, то ее можно поймать так:

@try {
  // код, который может сгенерировать ошибку
}
catch (Exception e) {
  <p>Произошла ошибка</p>
}
finally {
  <p>Мы попали в finally</p>
}

Так как я не могу привести хороших примеров, когда это может пригодиться, я остановлюсь тут и если у тебя есть предложения, оставляй их в комментариях.

Следующая глава

3.7. using в Razor

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне