페이스 북 fql을 사용하면 내 페이지에 다음 쿼리를 만족하는 게시물이없는 경우 쿼리에서 빈 메시지 문자열을 반환하지만이 경우 예외를 피할 수있는 방법은 무엇입니까?빈 페이 스북 쿼리를 쿼리 할 때 예외 발생을 피하십시오.
코드 :
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");
}
catch (FacebookException e){logger.warn("Unexpected error", e); logger.warn("Unexpected error", e);}
catch (Exception e){logger.warn("Unexpected error", e); logger.warn("Unexpected error", e);}
오류 메시지 :
2013-12-22 07:46:35,913 WARN [javafxapplication4.JavaFXApplication4] - Unexpected error
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:638)
at java.util.ArrayList.get(ArrayList.java:414)
at java.util.Collections$UnmodifiableList.get(Collections.java:1369)
at javafxapplication4.JavaFXApplication4$1.run(JavaFXApplication4.java:1121)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
예외 추적을 보면 ArrayList.get 작업에서 오류가 발생했음을 알 수 있습니다. 이것은 당신의 코드에서'queryResults.get (0)'연산에 해당하며 예외는 존재하지 않는리스트 요소를 요청했다는 것을 알려줍니다. 따라서 요소 0이 없습니다. Ergo, 코드는 액세스하기 전에 목록에서'isEmpty()'또는'size()'를 검사해야하며 항목이 없으면 액세스하지 않아야합니다. (코드는 하나 이상의 항목이있는 경우를 고려해야합니다.) 정보가 바로 눈앞에 있기 때문에 도움이 필요하지 않습니다. –