... Сербии признал незаконным
об экстрадиции ... Апелляционный суд отменил
суда первой ...
Проблема взаимоотношений молодежи и старшего поколения существовала во все века. Это не раз доказывали археологические находки, надписи на которых гласили о том, что невоспитанное и растленное молодое поколение не сможет совершать великих деяний, создавать великие памятники искусства и культуры и, непременно, принесет миру погибель. Да и в литературе тема «отцов и детей» всегда была популярна. ...
Запись Конфликт поколений: отцы и дети впервые появилась На Slyspider.net можно читать онлайн бесплатно и без регистрации.
В Риме по обвинению в коррупции в судебных процессах арестованы 7 человек, среди которых: судья ...
... вы должны принять
.
Если ...
Продолжаю цикл переводов понравившейся мне статьи автора James Dingle про исключения.
Первый пост посвященный этой статье находится здесь.
4. Обрабатывать исключение нужно на правильном уровне стека
Давайте вернемся к нашей компании по доставке пиццы.
Вы могли бы ожидать от каждого из сотрудников, что они не будут сообщять о каждой из проблем их менеджерам.
Те случаи с которыми они должны справиться, это часть их работы.
Например, мы ожидаем от менеджера локальной точки продаж того.
Что он будет слушать жалобы несчастных клиентов и реагировать соответственно.
Вы не захотите, чтобы проблема поднималась пузырем к региональному директору.
Который с одной стороны упустит контекст происходящего, и не сможет потратить достаточно своего времени на этого клиента.
Вы также не хотите, чтобы парень из доставки осуществлял коммуникацию с клиентом сам.
Потому что он не достаточно натренирован/образован для этого.
Но вы должны иметь ответ для этого клиента, или плохая репутация вашей компании обеспечена.
С другой стороны, если пиццы всегда должны быть доставлены.
А региональный директор дает локальной точке продаж слишком широкий диапазон распространения (продаж).
То проблема возможно не будет эффективно решена.
Если локальная точка продаж пытается решить проблему сама, и не поднимает ее на более высокий уровень корпорации.
Но региональный директор может сделать кое-что по этому поводу.
Тоже самое происходит и с вашим приложением.
Когда вы предполагаете обработать ошибку, делайте это.
Обработка исключений означает, что приложение будет исполнять другой код, потому что случилась ошибка.
Это может быть, например, вываливание по ошибке, повторная попытка, или ожидание пользовательского ввода.
Или вы решите, что ошибка приемлима и программа продолжится.
Но вы должны принять решение.
Если вы не знаете о том, что делать с исключением, потому что вам нехватает информации о контексте.
Вы, возможно, находитесь слишком низко в стеке, поэтому не ловите его.
Если исключение происходит в более высоком/большом процессе чем необходимо.
Это значит, возможно, вы поймали исключение слишком высоко в стеке.
try
{
UploadUserImageToWebProfile();
}
catch(NotAnImageException exception)
{
Log("Cannot upload the image to the web profile of user {0}. " +
"The web profile will show a default image instead. " +
"The source error is: {1}", userName, exception);
}
Конечно, здесь вы получаете контекст и присоединяете к нему пользователя, к которому он относится.
Давайте дадим ключи/подсказки и указатели людям, которые читают лог файл, пытаясь найти или воспроизвести проблему.
Продолжение следует ...