PFhayes прав, вам нужно убедиться, что каждый уровень свойств, через который вы проходите, определен. ИЛИ, если вы хотите быть ленивым, вы можете просто написать это в инструкции try / catch. Вот так:
if (XMLData.product[i] && XMLData.product[i].image[0] && XMLData.product[i].image[0].thumb)
{
thumbURL = XMLData.product[i].image[0].thumb;
}else{
//Not defined somewhere
}
или
try{
thumbURL = XMLData.product[i].image[0].thumb;
}catch(err:Error){
//Something went wrong. You can analyze the error data from here and act accordingly
}