Как избежать исключений при создании URL? - PullRequest
0 голосов
/ 30 октября 2018

В тестовом пакете JUnit я создаю объект java.net.URL и использую его в различных утверждениях assert. Тем не менее, конструктор для объекта URL создает исключение MalformedURLException, которое должно быть перехвачено. Поскольку это должно быть перехвачено, конструктор должен быть заключен в try / catch, а это означает, что вы должны поместить переменную в область видимости за пределами try / catch.

Пример кода:

URL ocURL = null;
try {ocURL = new URL("https://docs.oracle.com/javase/8/docs/api/java/net/URL.html");} 
catch (MalformedURLException e) {}

assertEquals(variable, ocURL)

По общему признанию, это полностью эстетично: мне не нравится весь дополнительный код без смысла засорять мой экран. Поскольку я передаю URL-адрес в виде строки, я знаю, что он будет хорошим, поэтому исключение не может быть выдано (хотя и последние известные слова).

Есть ли способ избежать объявления объекта URL, а затем инициализировать его внутри try / catch? Есть ли способ построить объект java.net.URL без необходимости перехвата (несуществующего) исключения?

1 Ответ

0 голосов
/ 30 октября 2018

вместо этого создайте статический фабричный метод и обработайте try/catch только один раз:

private static URL createURL(String path) {
     try {
         return ....;
     } catch(MalformedURLException e){
         // handle somehow
         throw new RuntimeException(e);
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...