2014-07-09 34 views
-1

当我试图从facebook登录时获取电子邮件。我得到了例外:电子邮件没有价值。那么剩余的代码不会执行。我的意思是HTTPParams代码没有执行。我给了电子邮件许可以获得电子邮件但一些用户的Facebook电子邮件没有得到。这里是我的代码Android - 如何在发生异常时执行其余代码

     try { 

         JSONObject jobj = new JSONObject(responseData); 
         Dataengine.firstname = jobj.getString("first_name"); 
         Dataengine.last_name = jobj.getString("last_name"); 
         Dataengine.username = jobj.getString("username"); 
         Dataengine.gender = jobj.getString("gender"); 
         Dataengine.email = jobj.getString("email"); 
         Dataengine.id = jobj.getString("id"); 
         try{ 
          JSONObject jsonob=jobj.getJSONObject("location"); 
          String addres=jsonob.getString("name"); 
          MyLog.i("Login","==============address-----------"+addres); 
          String name[]= new String[2]; 
          name=addres.split(","); 
          MyLog.i("Login","==============address-----------"+name.length); 
          if(name.length>=2){ 
           Dataengine.city=name[0]; 
           Dataengine.state=name[1]; 
          } 
         }catch(Exception e){ 
          Dataengine.email=Dataengine.id+"@facebook.com"; 

         } 


         HttpParams signparams = new BasicHttpParams(); 
         signparams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, 
           HttpVersion.HTTP_1_1); 
         mHttpClient11 = new DefaultHttpClient(signparams); 

         try { 

          HttpPost httppost = new HttpPost(Dataengine.reg); 

          // File ff=new File(Dataengine.profile_image); 

          MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
          multipartEntity.addPart("fname", new StringBody(
            Dataengine.firstname)); 
          multipartEntity.addPart("lname", new StringBody(
            Dataengine.last_name)); 
          multipartEntity.addPart("uname", new StringBody(
            Dataengine.username)); 
          multipartEntity.addPart("pwd", new StringBody(
            "password")); 
          multipartEntity.addPart("email", new StringBody(
            Dataengine.email)); 
          multipartEntity.addPart("gender", new StringBody(
            Dataengine.gender)); 
          if(null!=Dataengine.state) 
           multipartEntity.addPart("state", new StringBody(Dataengine.state)); 

          if(null!=Dataengine.city) 
           multipartEntity.addPart("city", new StringBody(Dataengine.city)); 

          multipartEntity.addPart("facebook_id", new StringBody(
            Dataengine.id)); 
          multipartEntity.addPart("devicetoken", new StringBody(Dataengine.registrationId)); 
          multipartEntity.addPart("image", new FileBody(file)); 
          httppost.setEntity(multipartEntity); 
          response = mHttpClient11.execute(httppost); 
          entity = response.getEntity().getContent(); 
          Log.i("info", "input stream respo entity ...:" + entity); 
          /* String responseString = EntityUtils.toString(response.getEntity()); 
          Log.v("", "facebook reg response..:"+responseString);*/ 


          //Log.i("info", "ajhdfjaslk88888888888============88888888dfa"+responseString); 
         } catch(ConnectTimeoutException es){ 
          es.printStackTrace(); 
         }catch (ClientProtocolException e1) { 

          e1.printStackTrace(); 
         } catch (IOException e1) { 

          e1.printStackTrace(); 
         }catch (Exception e) { 

         } 

回答

0

你可以使用带try语句的try catch块。 try-catch块将被执行,直到捕获到一个异常,然后finally块才会被执行。

try {// executes until exception 

    } catch (){ // executes only if exception is thrown 

    } finally { // always gets called 

    } 
相关问题