title: Syntax error on token "extends", throws expected - when implementing AsyncTask
body: <p>I'm attempting to implement asynctask into my existing source code but I'm getting an error stating <code>Syntax error on token "extends", throws expected</code></p>
  
  <p>If I change     </p>
  
  <pre><code>public void run() extends AsyncTask {
  </code></pre>
  
  <p>to </p>
  
  <pre><code>public void run() throws AsyncTask {
  </code></pre>
  
  <p>as eclipse seems to be asking me to do  - I end up with:</p>
  
  <pre><code>No exception of type AsyncTask can be thrown; an exception type must be a subclass of Throwable
  </code></pre>
  
  <p>I simply need to figure out what I've done wrong in my asyncTask implementation. </p>
  
  <h2>JAVA</h2>
  
  <pre><code>public class GetYouTubeUserVideosTask implements Runnable {
  
      public static final String LIBRARY = "Library";
      private final Handler replyTo;
      private final String username;
  
      public GetYouTubeUserVideosTask(Handler replyTo, String username) {
          this.replyTo = replyTo;
          this.username = username;
      }
  
      @Override
      public void run() extends AsyncTask {
          try {
  
              HttpClient client = new DefaultHttpClient();
  
              HttpUriRequest request = new HttpGet("https://gdata.youtube.com/feeds/api/videos?author="+username+"&amp;v=2&amp;alt=jsonc");
  
              HttpResponse response = client.execute(request);
  
              String jsonString = StreamUtils.convertToString(response.getEntity().getContent());
  
              JSONObject json = new JSONObject(jsonString);
              JSONArray jsonArray = json.getJSONObject("data").getJSONArray("items");
  
  
              List&lt;Video&gt; videos = new ArrayList&lt;Video&gt;();
  
              for (int i = 0; i &lt; jsonArray.length(); i++) {
                  JSONObject jsonObject = jsonArray.getJSONObject(i);
  
                  String title = jsonObject.getString("title");
                  String url;
                  try {
                      url = jsonObject.getJSONObject("player").getString("mobile");
                  } catch (JSONException ignore) {
                      url = jsonObject.getJSONObject("player").getString("default");
                  }
                  String thumbUrl = jsonObject.getJSONObject("thumbnail").getString("sqDefault");
  
  
                  videos.add(new Video(title, url, thumbUrl));
              }
  
              Library lib = new Library(username, videos);
  
              Bundle data = new Bundle();
              data.putSerializable(LIBRARY, lib);
  
  
              Message msg = Message.obtain();
              msg.setData(data);
              replyTo.sendMessage(msg);
  
          } catch (ClientProtocolException e) {
              Log.e("Feck", e);
          } catch (IOException e) {
              Log.e("Feck", e);
          } catch (JSONException e) {
              Log.e("Feck", e);
          }
      }
       protected void onPostExecute(String result) {
         // do something
        }
  
        protected void onPreExecute() {
         // do something
        }
        protected void onProgressUpdate(String... text) {
            // do something
            }
  }
  </code></pre>