Try 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的元標記。然後,如果發生異常,則會拋出異常,導致該異常的URL將被放入數組$this->blockUrl
。然後它會再次調用相同的方法,但是這次只有剩餘的url會被再次驗證。
這是一個正確和有效的方法來做這個邏輯?
我用try catch
這裏,是因爲有時我上get_meta_tags
curl
錯誤,我只是想跳過了這些錯誤這些網址,並將繼續流動。
你試過了嗎? – RiggsFolly
捲曲實際上是否拋出*例外* ...?!或者只是顯示錯誤/通知?後者不能被「抓住」。 – deceze
@deceze - 在PHP 7中,您可以將其視爲「Throwable」。 –