Первая промежуточная цель - получить хорошее представление о том, какие исключения игнорируются и где; для этого вы можете просто добавить код регистрации в каждый из этих ужасных catch
-все блоков, точно показывая, что это за блок, и что он ловит и скрывает. Запустите тестовый набор поверх инструментированного кода, и у вас будет стартовый «план» для задания по исправлению.
Если у вас нет набора тестов, то, во-первых, сделайте одно-модульные тесты, которые могут подождать (посмотрите Отличная книга Перса по работе с устаревшим кодом - - унаследованный код определенно является вашей проблемой здесь ;-), но вам нужен набор интеграционных тестов, которые можно запускать автоматически и отмечать все ошибки, которые вы должны исправить.
Пока вы исправляете ошибку после ошибки (многие из них не будут вызваны чрезмерно широкими блоками перехвата, просто скрыто / "отложено" ими ;-), будьте Обязательно работайте в основном на основе тестов: добавьте модульный тест, который помечает ошибку, подтвердите ее поломку, исправьте ошибку, перезапустите модульный тест, чтобы подтвердить, что ошибка устранена. Ваш растущий набор модульных тестов (со всем возможным вычеркнутым или фальсифицированным) будет работать быстро, и вы сможете продолжать перезапуск по дешевке во время работы, чтобы ловить возможные регрессии как можно скорее, когда их все еще легко исправить.
Задача, которую вы назначили, на самом деле сложнее (и часто более важна), чем задачи разработки ПО «высокого престижа», такие как прототипы и новые архитектуры, но часто неправильно понимается и недооценивается (и поэтому недооценивается! ) руководством / клиентами; убедитесь, что у вас есть очень четкий и открытый канал связи с заинтересованными сторонами, указывающий на весь огромный объем успешной работы, которую вы выполняете, насколько она сложна и (ради них больше, чем у вас), сколько они будут иметь сперва сделав это правильно (возможно, в следующий раз они это сделают ... Я знаю, я по натуре оптимист по природе ;-). Может быть, они даже назначат вам партнера по этой задаче, и тогда вы сможете выполнять анализ кода и парное программирование, что значительно повышает производительность.
И, наконец, что не менее важно, удачи !!! - к сожалению, вам это понадобится ... к счастью, как сказал Джефферсон, "чем больше я работаю, тем больше мне везет иметь "; -)