В вашем блоке try ваш код не вызывает никаких исключений.Вы можете создать приватный метод или функцию, которая выдает исключение, когда теги пусты.
function implementTagsStrings(?array $tagsData = []){
if (!isset($vid["items"][0]["snippet"]["tags"])) {
throw new \Exception("There is no tags.");
}
$tagsData = $vid["items"][0]["snippet"]["tags"];
$tagsArray = [];
$tagsString = "";
for ($x = 0; $x < count($tagsData); $x++) {
$tagsArray[$x] = $tagsData[$x];
$tagsString .= $tagsArray[$x] . " , ";
}
if (empty($tagsString)) {
throw new \Exception("There is no tags.");
}
return $tagsString;
}
Тогда ваш код будет работать:
try {
$tagsString = implementTagsStrings($vid);
echo $tagsString;
} catch (\Exception $e) {
echo $e->getMessage();
}
Но комментарии Нигеля, возможно, более простые:
if (!isset($vid["items"][0]["snippet"]["tags"])) {
echo "There is no tags.";
} else {
$tagsArray = array();
$tagsString = "";
for ($x = 0; $x < count($tagsData); $x++) {
$tagsArray[$x] = $tagsData[$x];
$tagsString .= $tagsArray[$x] . " , ";
}
echo $tagsString;
}