Try catch
wird für die Behandlung von Ausnahmen verwendet, aber könnte es auch so verwendet werden?Kann versuchen, auf diese Weise verwendet werden, um Ausnahmen zu behandeln?
private $blockUrl = [];
public function doSomething($urls) {
try {
foreach ($urls as $key => $url) {
if (in_array($url, $this->blockUrl)) continue;
$meta[$url] = get_meta_tags($url);
unset($urls[$key]);
}
} catch (Exception $e) {
$this->blockUrl[] = $url;
return $this->doSomething($urls);
}
return $meta;
}
Also im Grunde ist das, dass es die Metatags der URLs erhält, die an die Methode weitergegeben werden. Sollte dann eine Ausnahme auf dem get_meta_tags
auftreten, wird eine Ausnahme ausgelöst und die URL, die die Ausnahme verursachte, wird in ein Array $this->blockUrl
abgelegt. Dann wird dieselbe Methode erneut aufgerufen, aber diesmal werden nur die verbleibenden URLs erneut validiert.
Ist dies ein richtiger und effizienter Weg, um diese Logik zu machen?
benutzte ich try catch
hier wegen manchmal ich curl
Fehler auf dem get_meta_tags
bekommen und ich will nur diese URLs überspringen, die diese Fehler und weiterhin mit der Strömung hat.
Haben Sie es versucht? – RiggsFolly
Ist Curl tatsächlich eine * Ausnahme * ...? Oder nur einen Fehler/Hinweis anzeigen? Letzteres kann nicht "gefangen" werden. – deceze
@deceze - In PHP 7 können Sie es als 'Throwable' fangen. –