java异常继续代码循环

时间:2013-12-17 19:24:19

标签: java exception

如何恢复下面显示的代码,这样如果第一次尝试获得异常,代码执行仍将继续进行第二次尝试。目前,如果我在第一次尝试时遇到异常,代码就不会继续下面的下一次尝试。

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);} 

2 个答案:

答案 0 :(得分:1)

尝试使用Exception而不是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);
} 

希望有所帮助

答案 1 :(得分:0)

您需要将代码放在方法中的第二个try块中。 从第一次尝试的catch块调用此方法。

看看这个     Continue Execution even after program catches exception