Mega Code Archive

 
Categories / Java / Swing Components
 

Exception dump and Dialog Box

/*  * Copyright 2006 Lorenzo Keller <lorenzo.keller@gmail.com>  *   *     This file is part of Teacher.  *  *   Teacher is free software; you can redistribute it and/or modify  *   it under the terms of the GNU General Public License as published by  *   the Free Software Foundation; either version 2 of the License, or  *   (at your option) any later version.  *  *   Teacher is distributed in the hope that it will be useful,  *   but WITHOUT ANY WARRANTY; without even the implied warranty of  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  *   GNU General Public License for more details.  *  *   You should have received a copy of the GNU General Public License  *   along with Teacher; if not, write to the Free Software  *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA  *   */ //package kello.teacher.util; import java.awt.Component; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import javax.swing.JOptionPane; public class ExceptionDialogBox extends Object {   static public void displayExceptionDialog(Component parent, Exception ex, String message) {     String title = "Internal Error";     String text = message + "\n\n" + "The details of the error the follows:\n\n" +             ex.toString();     String[] buttons = { "OK", "Save report" };     int ret = JOptionPane.showOptionDialog(parent, text, title, JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, buttons, buttons[0]);     if (ret == JOptionPane.NO_OPTION) {       try {         File report = new File("report.log");         FileWriter out = new FileWriter(report);         PrintWriter print = new PrintWriter(out);         print.print(text);         ex.printStackTrace(print);         print.close();       } catch (IOException ex1) {         System.out.println(":'-( I'm really buggy! I can't do a dump of my exceptions");         ex1.printStackTrace();       }     }   } }