title: Android, how to display a dialog from error of a try catch?
body: <p>In my app I connect to a website to collect some information at start with a AsyncTask, using a try catch, from here I can display in my catlog the error if any at connection, but I have been trying with out luck to show a dialog displaying the connection failure with options to reconnect or quit, please check my code and tell me what I'm doing wrong or an idea of how to accomplish this</p>
  
  <pre><code> //this is our download file asynctask
  class DownloadFileAsync extends AsyncTask&lt;String, String, String&gt; {
  
      @Override
      protected void onPreExecute() {
          super.onPreExecute();
          showDialog(DIALOG_DOWNLOAD_PROGRESS);
      }
  
      @Override
      protected String doInBackground(String... aurl) {
  
          try {
          String result = "";
                      try {
                          HttpClient httpclient = new DefaultHttpClient();
                          HttpPost httppost = new HttpPost("http://mywebsiteaddress");
                          // httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                          HttpResponse response = httpclient.execute(httppost);
                          HttpEntity entity = response.getEntity();
                          InputStream webs = entity.getContent();
                          // convert response to string
                          try {
                              BufferedReader reader = new BufferedReader(
                                      new InputStreamReader(webs, "iso-8859-1"), 8);
                              StringBuilder sb = new StringBuilder();
                              String line = null;
                              while ((line = reader.readLine()) != null) {
                                  sb.append(line + "\n");
                              }
                              webs.close();
  
                              result = sb.toString();
                          } catch (Exception e) {
                              Log.e("log_tag", "Error converting result " + e.toString());
                          }
                      } catch (Exception e) {
                          Log.e("log_tag", "Error in http connection " + e.toString());
                      }
  
                      // parse json data
                      try {
                          JSONArray jArray = new JSONArray(result);
                          for (int i = 0; i &lt; jArray.length(); i++) {
                              JSONObject json_data = jArray.getJSONObject(i);
                              webResult resultRow = new webResult();
                              //infotodownload
                              arrayOfWebData.add(resultRow);
  
                          }
                      } catch (JSONException e) {
                          Log.e("log_tag", "Error parsing data " + e.toString());
                      }
      } catch (Exception e) {
          // this is the line of code that sends a real error message to the
          // log
          Log.e("ERROR", "ERROR IN CODE: " + e.toString());
          // this is the line that prints out the location in
          // the code where the error occurred.
          e.printStackTrace();
      }
          return null;
      }
  
      protected void onProgressUpdate(String... progress) {
           Log.d(LOG_TAG,progress[0]);
           mProgressDialog.setProgress(Integer.parseInt(progress[0]));
      }
  
      @Override
      protected void onPostExecute(String unused) {
          //dismiss the dialog after the file was downloaded
          dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
      }
  
  }
  
  //our progress bar settings
  @Override
  protected Dialog onCreateDialog(int id) {
      switch (id) {
          case DIALOG_DOWNLOAD_PROGRESS: //we set this to 0
              mProgressDialog = new ProgressDialog(this);
              mProgressDialog.setTitle("Conectando al Servidor");
              mProgressDialog.setMessage("Cargando informacion...");
              mProgressDialog.setIndeterminate(false);
              mProgressDialog.setMax(100);
              mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
              mProgressDialog.setCancelable(true);
              mProgressDialog.show();
              return mProgressDialog;
          default:
              return null;
      }
  }
  </code></pre>
  
  <p>EDIT:
  then I have try adding the next code as of suggested by Arun</p>
  
  <pre><code> catch (Exception e) {
          // this is the line of code that sends a real error message to the
          // log
          Log.e("ERROR", "ERROR IN CODE: " + e.toString());
          // this is the line that prints out the location in
          // the code where the error occurred.
          e.printStackTrace();
          return "ERROR_IN_CODE";
      }
         return null;       // if I place here return "ERROR_IN_CODE" it calls the dialog but it gets always called so I don't need it here
      }
  
      @Override
      protected void onPostExecute(String unused) {
          //dismiss the dialog after the file was downloaded
          dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
          if(unused.equals("ERROR_IN_CODE")){                 //I get a system crash here!
              errornote();
          }
      }
  
  }
  
  public void errornote() {
      AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
      alt_bld.setMessage("No se a podido descargar la informacion de los medios, deseas reintentarlo, o salir?").setCancelable(false)
              .setPositiveButton("Conectar de Nuevo", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int id) {
                      new DownloadFileAsync().execute();
                  }
              })
              .setNegativeButton("Salir", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int id) {
                      // Action for 'NO' Button
                      finish();
                  }
              });
      AlertDialog alert = alt_bld.create();
      // Title for AlertDialog
      alert.setTitle("Error en la Conexion!");
      // Icon for AlertDialog
      alert.setIcon(android.R.drawable.ic_dialog_alert);
      alert.show();
  }
  </code></pre>
  
  <p>but not working either, my app crashes in the if statement line in onPostExecute. I still need help.</p>