Блок catch не ограничивает методы, которые вы можете вызывать любым способом: он отличается только от блока try над ним тем, что он не находится в области обработки исключений.
Таким образом, вы можете
1) заключить вызов в любое исключение, выбрасывающее элементы графического интерфейса, в блоке catch внутри другого try / catch
Или проще
2) Просто используйте компонент, такой как JoptionPane, который безопасно запустит диалоговое окно без исключений.