В общем, вы, вероятно, хотите отлавливать исключения на самом низком уровне в своем коде.Чем ближе они переданы относительно места возникновения исключения, тем больше у вас шансов исправить проблему, вызвавшую их.
Если вы не можете предпринять какие-либо коррективыЕсли на этом уровне есть надежда исправить проблему, вызывающую исключение, вы не должны его вообще обрабатывать . Просто дайте исключению всплыть и обрабатывать его глобально, как вам хочется.
При этом, если у вас обработано исключение на более низком уровне, единственный способ, которым вы сможете его перехватить на более высоком уровне, это еслиВы rethrow it из блока Catch
на нижнем уровне.
Так, например:
try
{
//your code
}
catch (SomeException e)
{
//take any relevant handling measures
//rethrow the exception
throw;
}
Конечно, этотехнически это означало бы, что исключение составляет необработанное этим блоком Try / Catch на нижнем уровне, но это единственный способ получить что-то, что можно поймать на более высоком уровне.
Для получения дополнительной информации о перебрасывании исключений см .: