Как заменить существующий код в блоке catch для всех методов во всех классах пакета? - PullRequest
3 голосов
/ 15 апреля 2019

У нас есть пакет, который имеет много классов, и у каждого из них есть несколько методов с блоками try и catch.Мне нужно обновить существующий код во всех блоках catch каждого метода.

Есть ли у нас какой-либо более быстрый способ или способ сделать то же самое, что традиционная копировальная паста займет много времени?

Я пытался найти и заменить, но он не принимает код спара строк.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2019

Вам понадобится регулярное выражение для замены нескольких строк. Regex примет код с парой строк. Замените весь код в блоке catch с помощью регулярных выражений.

Eclipse поддерживает регулярные выражения в диалоге «Найти / Заменить» (CTRL + F) и из Поиск-> Поиск (CTRL + H). Не забудьте установить флажок Регулярное выражение.

enter image description here

1 голос
/ 15 апреля 2019

Если у вас действительно есть очень много catch предложений, , что - ошибка, которую вы должны исправить в первую очередь. Отлов исключения должен быть редким, за исключением того, что он выполняет преобразование исключений на границе подсистемы и на высоких или средних уровнях программы для регистрации полезных сообщений для системных операторов. Возможно, вы думаете, или вам сказали, что вы должны регистрировать каждое исключение? Это неправильно.

Обратите внимание, что код, который выполняет преобразование исключений, легко изменить с помощью IDE, поскольку вы можете использовать его функции рефакторинга для быстрого изменения имени класса или для добавления или удаления аргументов конструктора.

Если у вас все еще есть много предложений catch с одинаковым кодом (кроме простого преобразования исключений), то дублирование является следующей проблемой, которую необходимо решить. Извлечение дубликата кода в общий служебный метод (или методы). Таким образом, вы можете разделить эти методы между классами, они должны быть static.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...