Try catch
は例外を処理するために使用されますが、この方法でも使用できますか?このようにcatchを使用して例外を処理できますか?
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;
}
これは基本的に、メソッドに渡されるURLのメタタグを取得することです。その後、get_meta_tags
の例外が発生した場合、例外がスローされ、例外の原因となったURLは配列$this->blockUrl
に入れられます。次に、同じメソッドをもう一度呼び出しますが、今回は残りのURLのみが再度検証されます。
これは、このロジックを実行するための正確かつ効率的な方法ですか?
ため、私は時々私はget_meta_tags
にcurl
エラーを取得し、私はこれらのエラーを持っているそれらのURLをスキップして流れを継続したいのここtry catch
を使用。
試しましたか? – RiggsFolly
カールは実際には*例外* ...?をスローしますか?またはエラー/通知を表示するだけですか?後者は「キャッチ」できません。 – deceze
@deceze - PHP 7では、Throwableとしてキャッチできます。 –