使用 flickr 时出现 arrayoutofboundsexception api

arrayoutofboundsexception when using flickr api

我有一段代码可以在 flickr 上进行图像搜索,returns URL 具有该名称的第一张图像。我在 flickr 上搜索的某些词没有任何匹配的图像,所以因为没有图像可以获取,所以我得到一个 ArrayOutOfBoundsException [0]。有什么方法可以让程序跳过特定的单词并继续搜索下一个单词?

到目前为止,这是我的代码:

PImage[] images;
int imageIndex;
XML xml; 
String tag = "rutte";
String tag_mode = "all";
String words[];

void setup() {
   size(50, 50);
   String lines[] = loadStrings("text.txt");
   words = split(lines[0], " ");


for (int k = 0; k<words.length; k++) {  
String query = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=MY API KEY&tags="+ words[k] + "&sort=relevance&tag_mode="+ tag_mode +"format=rest";
xml = loadXML(query);
XML[] children = xml.getChildren("photos");
if(children.length > 0){
XML[] childPhoto = children[0].getChildren("photo");


  for (int i = 0; i < 1; i++) {
     String id = childPhoto[i].getString("id");       // this line generates the error :(
     String title = childPhoto[i].getString("title");
     String user = childPhoto[i].getString("owner");
     String url = "https://www.flickr.com/photos/"+user+"/"+id;
     println(url);
     println("=====================");
  }
}
}

textAlign(CENTER, CENTER);
smooth();
}

void draw() {
}

只需使用数组的 length 字段。像这样:

XML[] children = xml.getChildren("photos");
if(children.length > 0){
   XML[] childPhoto = children[0].getChildren("photo");

   if(childPhoto.length > 0){
      String id = childPhoto[0].getString("id");  
      //rest of your code
   }

您可以在 the Processing reference 中找到更多信息。

事实上,您已经在使用 words 数组执行此操作!