Я работаю с javax.swing
над созданием приложения, которое генерирует формы из схемы XML (используя библиотеку JAXFront) и сохраняет данные, заполненные пользователем, в документы XML.
Я помещал блоки try-catch-finally, когда мне это нужно, но у меня есть небольшая проблема с перехватом исключений, когда основной поток заканчивается (потоки AWT все еще работают).
У меня есть два класса, которые выполняют основную работу, и другие классы, которые не важны для вопроса:
Основной класс: имеет следующую структуру. Инициализирует приложение и запускает основной фрейм
public class Main { public static void main(String[] args) { readArgs(); // An INI file with the app config Model model = initializeElements(args); // My model class try { MyFrame mfr = new MyFrame(title,model); mfr.visualize(); // Assembling view and setting visible } catch( Excepion e ) { doCleanUp(); System.exit(-1); } } }
Класс фрейма: создает события просмотра и прослушивания.
public class MyFrame extends JFrame implements ActionListener,MenuListener { // Some attributes // Other mthods without importance /** * Compose the elements, add listeners and set visible the frame */ public void visualize() { generateFormPanel(); setListeners(); validate(); setVisible(true); } public MyFrame(String title, Modele model) { super(title); createElementsUsing(model); } public void actionPerformed(ActionEvent e) { // Code to manage events } }
Ну, проблема в следующем: когда функция визуализации выполняется из основного метода, представление генерируется и отображается. В этот момент я теряю контроль над перехватом исключений. Тогда мой вопрос заключается в том, есть ли способ поймать возможные исключения RuntimeException, выброшенные после этой точки.
Надеюсь, вы понимаете мой английский и сможете ответить на вопрос.
Заранее спасибо.