title: Uncompilable source code - unreported exception java.lang.Exception; must be caught or declared to be thrown
body: <p>I'm new in JAVA just learned a basics of it and now I'm trying to learn some advance JAVA I don't know its advance or not but what I'm trying to do is when I click on Search button I'll send 1 http call and when I remove http request code or when I remove search button code then its working individually but not together</p>
  
  <p>Here's my code :</p>
  
  <pre><code>/*
   * To change this license header, choose License Headers in Project Properties.
   * To change this template file, choose Tools | Templates
   * and open the template in the editor.
   */
  
  package google;
  import java.io.*;
  import java.net.*;
  import java.awt.event.*;
  import javax.swing.*;
  /**
   *
   * @author user
   */
  
  public class Google extends JFrame {
  
      private final String USER_AGENT = "Mozilla/5.0";
  
      public Google() {
         initUI();
      }
  
      private void callUrl() throws Exception {
  
          String url = "http://www.google.com/search?q=mkyong";
  
          URL obj = new URL(url);
          HttpURLConnection con = (HttpURLConnection) obj.openConnection();
  
          // optional default is GET
          con.setRequestMethod("GET");
  
          //add request header
          con.setRequestProperty("User-Agent", USER_AGENT);
  
          int responseCode = con.getResponseCode();
          System.out.println("\nSending 'GET' request to URL : " + url);
          System.out.println("Response Code : " + responseCode);
  
          BufferedReader in = new BufferedReader(
                  new InputStreamReader(con.getInputStream()));
          String inputLine;
          StringBuffer response = new StringBuffer();
  
          while ((inputLine = in.readLine()) != null) {
              response.append(inputLine);
          }
          in.close();
  
          //print result
          System.out.println(response.toString());
  
      }
  
      private void initUI() {
  
         JPanel panel = new JPanel();
         getContentPane().add(panel);
  
         panel.setLayout(null);
  
         JButton searchButton = new JButton("Search");
         searchButton.setBounds(50, 60, 80, 30);
  
         searchButton.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent event)  {
                 callUrl();
            }
         });
  
         panel.add(searchButton);
  
         setTitle("Search");
         setSize(300, 200);
         setLocationRelativeTo(null);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
      }
  
      public static void main(String[] args) throws Exception {
          SwingUtilities.invokeLater(new Runnable() {
              @Override
              public void run() {
                  Google ex = new Google();
                  ex.setVisible(true);
              }
          });
      }
  
  }
  </code></pre>
  
  <p>Sorry if this question is already exists I searched a lot but didn't get proper solution.
  Thanks</p>
  
  <p>Error :</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 google.Google$1.actionPerformed(Google.java:70)
      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)
  </code></pre>