İçeriğe geç

Finally İçinde Fırlatma (ARCH7155)

Anahtar php.logging.throw-in-finally · Önem error · Kategori logging

finally bloğu içinde istisna fırlatmak, try gövdesinde devam eden istisnayı maskeler ve asıl hatanın kaybolmasına yol açar.

<?php
try {
$this->process($data);
} finally {
if (!$this->stream->close()) {
throw new \RuntimeException('Close failed');
}
}
<?php
try {
$this->process($data);
} finally {
if (!$this->stream->close()) {
$this->logger->warning('Stream close failed');
}
}

finally içinde fırlatmak yerine hatayı loglayın; orijinal istisnanın yayılmasına izin verin.