2013-12-17 45 views
0

我怎麼能恢復如下所示的代碼,因此,如果第一次嘗試得到一個異常的代碼execusion仍然會進行到第二嘗試。此刻,如果我得到的第一次嘗試一個例外,該代碼不會繼續到下一個試試下面。Java異常繼續代碼迴路

Calendar facebook_check_post_date = Calendar.getInstance(); 
facebook_check_post_date.add(Calendar.DAY_OF_MONTH, -4); 
long facebook_check_post_Unix_Time = facebook_check_post_date.getTimeInMillis()/1000;  
String query = "SELECT message,timeline_visibility, created_time FROM stream WHERE source_id = 187050104663230 AND message AND strlen(attachment.fb_object_type) < 1 AND type != 56 AND type = 46 AND strpos(message, \"prayer time(s)\") < 0 AND strpos(message, \"White days\") < 0 AND strpos(message, \"Hadith of the Day:\") < 0 AND created_time > " + facebook_check_post_Unix_Time + "LIMIT 1"; 

try 
{ 
List<JsonObject> queryResults = facebookClient.executeFqlQuery(query, JsonObject.class); 
facebook_post = queryResults.get(0).getString("message"); 
facebook_post_visibility = queryResults.get(0).getString("timeline_visibility"); 
facebook_Label_visible = true;          facebook_created_time_calendar.setTimeInMillis(queryResults.get(0).getLong("created_time")* 1000); 
out.print("Comment posted on:"); 
out.println(facebook_created_time_calendar.getTime()); 
} 
catch (FacebookException e){Logger.getLogger(JavaFXApplication4.class.getName()).log(Level.SEVERE, null, e);} 

query = "SELECT fan_count FROM page WHERE page_id = 187050104663230"; 
try 
{ 
List<JsonObject> queryResults = facebookClient.executeFqlQuery(query, JsonObject.class); 
facebook_Fan_Count = queryResults.get(0).getString("fan_count"); 
out.println(facebook_Fan_Count); 
} 
catch (FacebookException e){Logger.getLogger(JavaFXApplication4.class.getName()).log(Level.SEVERE, null, e);} 
+1

如果它沒有得到下一個語句,它意味着你捕獲了錯誤的例外。 – Devolus

+1

你是什麼意思,它不會繼續?它應該繼續(除了日誌)。第二次嘗試是否有錯誤? –

+0

我意識到我沒有抓住正確的例外 – Ossama

回答

1

嘗試使用異常,而不是FacebookException的:

Calendar facebook_check_post_date = Calendar.getInstance(); 
facebook_check_post_date.add(Calendar.DAY_OF_MONTH, -4); 
long facebook_check_post_Unix_Time = facebook_check_post_date.getTimeInMillis()/1000;  
String query = "SELECT message,timeline_visibility, created_time FROM stream WHERE source_id =  187050104663230 AND message AND strlen(attachment.fb_object_type) < 1 AND type != 56 AND type = 46  AND strpos(message, \"prayer time(s)\") < 0 AND strpos(message, \"White days\") < 0 AND  strpos(message, \"Hadith of the Day:\") < 0 AND created_time > " + facebook_check_post_Unix_Time + "LIMIT 1"; 

try 
{ 
    List<JsonObject> queryResults = facebookClient.executeFqlQuery(query, JsonObject.class); 
    facebook_post = queryResults.get(0).getString("message"); 
    facebook_post_visibility = queryResults.get(0).getString("timeline_visibility"); 
    facebook_Label_visible = true; 
    facebook_created_time_calendar.setTimeInMillis(queryResults.get(0).getLong("created_time")* 1000); 
    out.print("Comment posted on:"); 
    out.println(facebook_created_time_calendar.getTime()); 
} 
catch (Exception e) { 
    Logger.getLogger(JavaFXApplication4.class.getName()).log(Level.SEVERE, null, e); 
} 

query = "SELECT fan_count FROM page WHERE page_id = 187050104663230"; 
try 
{ 
    List<JsonObject> queryResults = facebookClient.executeFqlQuery(query, JsonObject.class); 
    facebook_Fan_Count = queryResults.get(0).getString("fan_count"); 
    out.println(facebook_Fan_Count); 
} 
catch (Exception e){ 
    Logger.getLogger(JavaFXApplication4.class.getName()).log(Level.SEVERE, null, e); 
} 

希望它可以幫助

+0

我認爲它是使用更安全例外五,而不是特定的異常,以確保一切都陷入 – Ossama

+0

它更聰明,以顯示與內抓 –

+1

嘛異常細節UI通知,我看你使用JavaFX的。在這裏,你可以找到PopupWindow的例子:https://gist.github.com/jewelsea/1926196只要把catch塊 –