Ben PHP İstisnalar kullanmak neden merak ettik. Basit bir örneğe bir göz atalım:
class Worker
{
public function goToWork()
{
return $isInThatMood ?
// Okay, I'll do it.
true :
// In your dreams...
false;
}
}
$worker = new Worker;
if (!$worker->goToWork())
{
if (date('l',time()) == 'Sunday')
echo "Fine, you don't have to work on Sundays...";
else
echo "Get your a** back to work!";
}
else
echo "Good.";
Bana kod için bu tür İstisnalar kullanmak için bir sebep var mı? Neden? Nasıl kod inşa edilecekti?
Ve hataları kod hakkında ne üretebilir ki:
class FileOutputter
{
public function outputFile($file)
{
if (!file_exists($file))
return false;
return file_get_contents($file);
}
}
Neden yukarıdaki durumda İstisnalar kullanmak istiyorsunuz? Ben bir İstisnaları, gerçek meydana sorunun türünü tanımak için yardımcı duygu var?
Yani, ben bu kodu uygun İstisnalar kullanıyorum:
class FileOutputter
{
public function outputFile($file)
{
if (!file_exists($file))
return throw new Exception("File not found.",123);
try
{
$contents = file_get_contents($file);
}
catch (Exception $e)
{
return $e;
}
return $contents;
}
}
Yoksa bu yoksul? Şimdi yatan kod yapabilirsiniz:
$fo = new FileOutputter;
try
{
$fo->outputFile("File.extension");
}
catch (Exception $e)
{
// Something happened, we could either display the error/problem directly
echo $e->getMessage();
// Or use the info to make alternative execution flows
if ($e->getCode() == 123) // The one we specified earlier
// Do something else now, create "an exception"
}
Ya da ben tamamen burada kaybettim ben?