title: Please help me sort out this Exception In JAVA
body: <p>I am getting following exception. Anyone please help me solve this problem. I am Executing it in netbeans 8 IDE. jdk 7 (32 bit).I'm trying to display the console output in a TextArea.</p>
  
  <p>errors:</p>
  
  <pre><code>Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - unreported exception java.lang.Exception; must be caught or declared to be thrown
      at NewJFrame.captureActionPerformed(NewJFrame.java:127)
      at NewJFrame.access$000(NewJFrame.java:22)
      at NewJFrame$1.actionPerformed(NewJFrame.java:66)
      at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
      at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
      at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
      at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
      at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
      at java.awt.Component.processMouseEvent(Component.java:6505)
      at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
      at java.awt.Component.processEvent(Component.java:6270)
      at java.awt.Container.processEvent(Container.java:2229)
      at java.awt.Component.dispatchEventImpl(Component.java:4861)
      at java.awt.Container.dispatchEventImpl(Container.java:2287)
      at java.awt.Component.dispatchEvent(Component.java:4687)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
      at java.awt.Container.dispatchEventImpl(Container.java:2273)
      at java.awt.Window.dispatchEventImpl(Window.java:2719)
      at java.awt.Component.dispatchEvent(Component.java:4687)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
      at java.awt.EventQueue.access$200(EventQueue.java:103)
      at java.awt.EventQueue$3.run(EventQueue.java:694)
      at java.awt.EventQueue$3.run(EventQueue.java:692)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
      at java.awt.EventQueue$4.run(EventQueue.java:708)
      at java.awt.EventQueue$4.run(EventQueue.java:706)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
  BUILD SUCCESSFUL (total time: 12 seconds)
  </code></pre>
  
  <p>SOURCE CODE:</p>
  
  <pre><code>import jpcap.*;
  import jpcap.NetworkInterface;
  import java.io.IOException;
  import jpcap.packet.DatalinkPacket;
  import jpcap.packet.EthernetPacket;
  import jpcap.packet.ICMPPacket;
  import jpcap.packet.IPPacket;
  import jpcap.packet.Packet;
  import jpcap.packet.TCPPacket;
  import jpcap.packet.UDPPacket;
  
  
  /**
   *
   * @author Rahul
   */
  public class NewJFrame extends javax.swing.JFrame implements PacketReceiver {
  static NetworkInterface [] devices;
      static int j = 0;
      int interface_index;
      String protocoll[] = {"HOPOPT", "ICMP", "IGMP", "GGP", "IPV4", "ST", "TCP", "CBT", "EGP", "IGP", "BBN", "NV2", "PUP", "ARGUS", "EMCON", "XNET", "CHAOS", "UDP", "mux"};
  
      /**
       * Creates new form NewJFrame
       */
      public NewJFrame() {
          initComponents();
           devices = JpcapCaptor.getDeviceList();
  
         for (int i = 0; i &lt; devices.length; i++) 
         {
              result.append(i + " :" + devices[i].name + "(" + devices[i].description + ")\n");
  
          }
  
      }
  
      /**
       * This method is called from within the constructor to initialize the form.
       * WARNING: Do NOT modify this code. The content of this method is always
       * regenerated by the Form Editor.
       */
      @SuppressWarnings("unchecked")
      // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;                          
      private void initComponents() {
  
          capture = new javax.swing.JButton();
          jButton2 = new javax.swing.JButton();
          jScrollPane1 = new javax.swing.JScrollPane();
          result = new javax.swing.JTextArea();
          select = new javax.swing.JButton();
          indexx = new javax.swing.JTextField();
          jLabel1 = new javax.swing.JLabel();
  
          setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
          setTitle("Packet Analyzer");
  
          capture.setText("CAPTURE");
          capture.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  captureActionPerformed(evt);
              }
          });
  
          jButton2.setText("STOP");
  
          result.setColumns(20);
          result.setRows(5);
          jScrollPane1.setViewportView(result);
  
          select.setText("Select");
          select.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  selectActionPerformed(evt);
              }
          });
  
          jLabel1.setText("Enter device index:");
  
          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
          getContentPane().setLayout(layout);
          layout.setHorizontalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(layout.createSequentialGroup()
                          .addGap(52, 52, 52)
                          .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 596, Short.MAX_VALUE))
                      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                          .addGap(88, 88, 88)
                          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                              .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                              .addComponent(indexx))
                          .addGap(18, 18, 18)
                          .addComponent(select)
                          .addGap(113, 113, 113)
                          .addComponent(capture)
                          .addGap(74, 74, 74)
                          .addComponent(jButton2)))
                  .addGap(58, 58, 58))
          );
          layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                  .addGap(26, 26, 26)
                  .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
                  .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(capture)
                      .addComponent(jButton2)
                      .addComponent(select)
                      .addComponent(indexx, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addGap(41, 41, 41))
          );
  
          pack();
      }// &lt;/editor-fold&gt;                        
  
      private void captureActionPerformed(java.awt.event.ActionEvent evt) {                                        
      capturepacket();    
  
      }                                       
  
      public void capturepacket() throws Exception    {
          JpcapCaptor jpcap = JpcapCaptor.openDevice(devices[2], 2000, true, 20);
  
          jpcap.loopPacket(-1, new NewJFrame());
  
      }
      private void selectActionPerformed(java.awt.event.ActionEvent evt) {                                       
         interface_index = Integer.parseInt(indexx.getText());
         result.setText(" ");
      }                                      
  
      public void receivePacket(Packet packet) 
      {
          result.append(packet + "\n");
          result.append("this is packet " + j + " :" + "\n");
          j++;
  
          IPPacket tpt=(IPPacket)packet;
          if (packet != null) 
          {
           int ppp=tpt.protocol;
           String proto=protocoll[ppp];
           result.append("about the ip packet in network layer : \n");
           result.append("\n******************************************************************");
           if(tpt.dont_frag)
           {
            result.append("\ndft bi is set. packet will not be fragmented \n");
           }
           else
           {
            result.append("\ndft bi is not set. packet will  be fragmented \n");
           }
           result.append("\n \n destination ip is :"+tpt.dst_ip);
           result.append("\n\n this is source ip :"+tpt.src_ip);
           result.append("\n\n this is hop limit :"+tpt.hop_limit);
           result.append("\n \n this is identification field  :"+tpt.ident);
           result.append("\n \npacket length :"+tpt.length);
           result.append("\n\n packet priority  :"+(int)tpt.priority);
           result.append("\ntype of service field"+tpt.rsv_tos);
           if(tpt.r_flag)
           {
            result.append("\nreleiable transmission");
           }
           else
           {
            result.append("\nnot reliable");
           }
           result.append("\nprotocol version is : "+(int)tpt.version);
           result.append("\nflow label field"+tpt.flow_label);
  
           result.append("\n**********************************************************************");
  
           result.append("\ndatalink level analysis");
           result.append("\n********************************************************************");
           DatalinkPacket dp = packet.datalink;
  
  
              EthernetPacket ept=(EthernetPacket)dp;
              result.append("\nthis is destination mac address :"+ept.getDestinationAddress());
              result.append("\n this is source mac address"+ept.getSourceAddress());
  
  
  
  System.out.println("*********************************************************************");
  result.append("\nthis is about type of packet");
  result.append("\n******************************************************************************");
  
                  if (proto.equals(("TCP"))) {
                      result.append(" /n this is TCP packet");
                      TCPPacket tp = (TCPPacket) packet;
                      result.append("\nthis is destination port of tcp :" + tp.dst_port);
                      if (tp.ack) {
                          result.append("\n" + "this is an acknowledgement");
                      } else {
                          result.append("\nthis is not an acknowledgment packet");
                      }
  
                      if (tp.rst) {
                          result.append("\nreset connection ");
                      }
                      result.append(" \n protocol version is :" + tp.version);
                      result.append("\n this is destination ip " + tp.dst_ip);
                      result.append("\nthis is source ip"+tp.src_ip);
                     if(tp.fin){
                         result.append("\nsender does not have more data to transfer");
                     }
                      if(tp.syn){
                          result.append("\n request for connection");
                      }
  
                  }else if(proto.equals("ICMP")){
                      ICMPPacket ipc=(ICMPPacket)packet;
               // java.net.InetAddress[] routers=ipc.router_ip;
                //for(int t=0;t
                  //  System.out.println("\n"+routers[t]);
               // }
                result.append(" \n this is alive time :"+ipc.alive_time);
                result.append("\n number of advertised address :"+(int)ipc.addr_num);
                result.append("mtu of the packet is :"+(int)ipc.mtu);
                result.append("subnet mask :"+ipc.subnetmask);
                result.append("\n source ip :"+ipc.src_ip);
                result.append("\n destination ip:"+ipc.dst_ip);
                result.append("\n check sum :"+ipc.checksum);
                result.append("\n icmp type :"+ipc.type);
                result.append("");
  
  
                  }else if(proto.equals("UDP")){
                      UDPPacket pac=(UDPPacket)packet;
                      result.append("\nthis is udp packet \n");
                      result.append("\nthis is source port :"+pac.src_port);
                      result.append("\nthis is destination port :"+pac.dst_port);
  
                  }
  
                result.append("\n******************************************************");
  
              }
  
  
  
  
          }
  
  
      /**
       * @param args the command line arguments
       */
      public static void main(String args[]) {
          /* Set the Nimbus look and feel */
          //&lt;editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "&gt;
          /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
           * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
           */
          try {
              for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                  if ("Nimbus".equals(info.getName())) {
                      javax.swing.UIManager.setLookAndFeel(info.getClassName());
                      break;
                  }
              }
          } catch (ClassNotFoundException ex) {
              java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
          } catch (InstantiationException ex) {
              java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
          } catch (IllegalAccessException ex) {
              java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
          } catch (javax.swing.UnsupportedLookAndFeelException ex) {
              java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
          }
          //&lt;/editor-fold&gt;
  
          /* Create and display the form */
          java.awt.EventQueue.invokeLater(new Runnable() {
              public void run() {
                  new NewJFrame().setVisible(true);
              }
          });
      }
  
      // Variables declaration - do not modify                     
      private javax.swing.JButton capture;
      private javax.swing.JTextField indexx;
      private javax.swing.JButton jButton2;
      private javax.swing.JLabel jLabel1;
      private javax.swing.JScrollPane jScrollPane1;
      public static javax.swing.JTextArea result;
      private javax.swing.JButton select;
      // End of variables declaration                   
  }
  </code></pre>