2013-12-17 47 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块 –