Одно преимущество, которое я вижу для перехвата и пересылки исключения, заключается в передаче сообщения: «Запрошенная операция не выполнена, но состояние системы по существу такое же, как до операции». Хотя перехват всех исключений во внутренней подпрограмме и надежда на то, что ни одно из них не представляет проблемы, которая должна привести к завершению основной программы, несколько странны, я не уверен, какой альтернативный дизайн лучше. Можно засорять код:
If Not Integer.TryParse(inputString, inputVar) Then
Throw New MyApp.FileLoadException("Whatever")
EndIf
но на самом деле кажется более естественным просто использовать Integer.Parse и перехватывать любые возникающие исключения. Поймать и перераспределить общие исключения в пределах небольшой области, где известны их ожидаемые причины, гораздо меньше зла, чем проглотить общие исключения на более высоком уровне.