Блок перехвата "просто перебросить" будет иметь несколько эффектов, которые могут вам понравиться или не понравиться:
- Если трассировка стека включает номера строк, номер строки, связанный с подпрограммой, которая перехватываети rethrows будет номером строки rethrow, а не номером строки вызова метода, в котором произошло исключение.В некоторых случаях это может быть очень раздражающим.
- Все неявные или явные вложенные блоки "finally" будут проходить свой курс до того, как обработка исключений при первом проходе выполнит сканирование стека, т. Е. До:
- Любые блоки внешнего фильтра получат шанс на запуск
- отладчик обнаруживает, что исключение будет в конечном итоге необработанным
- Внешняя область имеет шанс обнаружить, что исключение будет в конечном итоге необработанным, и уничтожит приложение, не выполняя вложенные блоки «finally».
- Если отладчик настроен на перехват необработанных исключений, он будет перехватываться в месте повторного выброса, а не в том месте, где произошло исключение.
В целом, я бы расценил поведение, указанное выше, как нежелательное, но в некоторых случаях можно было бы убедиться, что внутренние блоки "finally" будут выполняться до конца, даже если внешняя ловушка необработанных исключений может захотеть уничтожитьприложение до запуска внешних.