Управление исключениями - большая тема, поэтому здесь я коснусь только поверхности.
Из статей, которые я прочитал, говорится, что «обрабатывать только те исключения, которые вы можете восстановить из» Чтозначит ли это
Если вы не знаете, как восстановиться после определенного исключения, то обычно нет смысла его перехватывать.Если это веб-приложение или служба, сам веб-сервер будет заниматься журналированием и восстановлением.
В некоторых случаях вам нужно перехватывать исключения, чтобы можно было выполнить общее восстановление, например, отменив или изменив аннулированиесделка.В этом случае приемлемый подход -
перехватить исключение, выполнить общее восстановление, а затем снова выдать исключение.
Если я не могу обработать исключение, что мне делать,Позвольте ему распространяться обратно в стек?
Да.
Если я не обращаюсь с этим, как я могу войти в систему и представить удобное сообщение об ошибке.Что большинство людей делают в веб-приложениях и веб-службах?
Веб-сервер регистрирует исключение.Если вы хотите представить удобное для пользователя сообщение об ошибке в веб-приложении, вы можете перехватить / записать в журнал на самом высоком уровне стека и перенаправить на ваше сообщение об ошибке.Опять же, я бы попытался не перехватывать System.Exception - вместо этого составьте список исключений, которые выдает ваше приложение, и поймайте только эти типы, прежде чем представлять сообщение, предназначенное для каждого типа.По мере роста списка типов исключений либо предотвращайте каждый новый тип исключения, изменяя код, либо добавляйте новый улов для этого типа исключения.
В веб-службе вы можете создать собственное исключение и добавить его в качестве узла к общему исключению, которое будет предоставлять веб-служба.
В вашем примере кода я бы не использовалпопробуйте ... поймать, если вы не ожидаете исключения и не знаете, что с ним делать.
Как мне обрабатывать исключения на более низких уровнях.Должен ли я просто позволить исключению всплыть на ярусы.
Да.