11 Replies Latest reply: Jun 5, 2008 1:11 PM by 807591 RSS

    How can I put all output error message into a String Variable ??

    807591
      Dear Sir:

      I have following code, When I run it and I press overflow radio button, It outputs following message:
      Caught RuntimeException: java.lang.NullPointerException
      java.lang.NullPointerException
           at ExceptionHandling.ExceptTest.actionPerformed(ExceptTest.java:72)
           at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
           at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
           at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
           at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:291)
           at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
           at java.awt.Component.processMouseEvent(Component.java:6038)
           at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
           at java.awt.Component.processEvent(Component.java:5803)
           at java.awt.Container.processEvent(Container.java:2058)
           at java.awt.Component.dispatchEventImpl(Component.java:4410)
           at java.awt.Container.dispatchEventImpl(Container.java:2116)
           at java.awt.Component.dispatchEvent(Component.java:4240)
           at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
           at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
           at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
           at java.awt.Container.dispatchEventImpl(Container.java:2102)
           at java.awt.Window.dispatchEventImpl(Window.java:2429)
           at java.awt.Component.dispatchEvent(Component.java:4240)
           at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
           at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)Caught RuntimeException: java.lang.NullPointerException
      
           at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
           at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
           at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
           at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
           at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
      I hope to catch all these error message into a String Variable such as StrErrorMsg, then I can use System.out.println(StrErrorMsg) to print it out or store somewhere, not only display at runtime,

      How can I do this??
      Thanks a lot,
      See code below.



      import java.awt.Frame;
      import java.awt.GridLayout;
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
      import java.awt.event.WindowAdapter;
      import java.awt.event.WindowEvent;
      import java.io.FileInputStream;
      
      import javax.swing.ButtonGroup;
      import javax.swing.JFrame;
      import javax.swing.JPanel;
      import javax.swing.JRadioButton;
      
      public class ExceptTest extends JFrame implements ActionListener {
          private double[] a;
        private JRadioButton divideByZeroButton;
      
        private JRadioButton badCastButton;
      
        private JRadioButton arrayBoundsButton;
      
        private JRadioButton nullPointerButton;
      
        private JRadioButton negSqrtButton;
      
        private JRadioButton overflowButton;
      
        private JRadioButton noSuchFileButton;
      
        private JRadioButton throwUnknownButton;
      
        public ExceptTest() {
          JPanel p = new JPanel();
          ButtonGroup g = new ButtonGroup();
          p.setLayout(new GridLayout(8, 1));
          divideByZeroButton = addRadioButton("Divide by zero", g, p);
          badCastButton = addRadioButton("Bad cast", g, p);
          arrayBoundsButton = addRadioButton("Array bounds", g, p);
          nullPointerButton = addRadioButton("Null pointer", g, p);
          negSqrtButton = addRadioButton("sqrt(-1)", g, p);
          overflowButton = addRadioButton("Overflow", g, p);
          noSuchFileButton = addRadioButton("No such file", g, p);
          throwUnknownButton = addRadioButton("Throw unknown", g, p);
          getContentPane().add(p);
        }
      
        private JRadioButton addRadioButton(String s, ButtonGroup g, JPanel p) {
          JRadioButton button = new JRadioButton(s, false);
          button.addActionListener(this);
          g.add(button);
          p.add(button);
          return button;
        }
      
        public void actionPerformed(ActionEvent evt) {
          try {
            Object source = evt.getSource();
            if (source == divideByZeroButton) {
              a[1] = a[1] / a[1] - a[1];
            } else if (source == badCastButton) {
              Frame f = (Frame) evt.getSource();
            } else if (source == arrayBoundsButton) {
              a[1] = a[10];
            } else if (source == nullPointerButton) {
              Frame f = null;
              f.setSize(200, 200);
            } else if (source == negSqrtButton) {
              a[1] = Math.sqrt(-1);
            } else if (source == overflowButton) {
              a[1] = 1000 * 1000 * 1000 * 1000;
              int n = (int) a[1];
            } else if (source == noSuchFileButton) {
              FileInputStream is = new FileInputStream("Java Source and Support");
            } else if (source == throwUnknownButton) {
              throw new UnknownError();
            }
          } catch (RuntimeException e) {
            System.out.println("Caught RuntimeException: " + e);
            e.printStackTrace();
            System.out.println("Caught RuntimeException: " + e);
          } catch (Exception e) {
            System.out.println("Caught Exception: " + e);
          }
        }
      
        public static void main(String[] args) {
          JFrame frame = new ExceptTest();
          frame.setSize(150, 200);
          frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
              System.exit(0);
            }
          });
          frame.show();
        }
      }