package studio.ui; import java.io.CharArrayWriter; import java.io.PrintWriter; import javax.swing.*; import java.awt.*; public class ExceptionGroup extends ThreadGroup { public ExceptionGroup() { super("ExceptionGroup"); } public void uncaughtException(Thread t,Throwable e) { CharArrayWriter caw = new CharArrayWriter(); e.printStackTrace(new PrintWriter(caw)); JOptionPane.showMessageDialog(findActiveFrame(), "An uncaught exception occurred\n\nDetails - \n\n" + caw.toString(), "Studio for kdb+", JOptionPane.ERROR_MESSAGE); } private Frame findActiveFrame() { Frame[] frames = JFrame.getFrames(); for (int i = 0;i < frames.length;i++) { Frame frame = frames[i]; if (frame.isVisible()) return frame; } return null; } }