为什么以及如何在此示例 PHP 代码中使用异常?
我一直在想为什么我会在我的PHP中使用异常。让我们看一个简单的例子:
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.";
我有理由对这种代码使用异常吗?为什么?如何构建代码?
那么可能产生错误的代码呢:
class FileOutputter
{
public function outputFile($file)
{
if (!file_exists($file))
return false;
return file_get_contents($file);
}
}
在上述情况下,我为什么要使用例外?我有一种感觉,异常可以帮助您识别问题的类型,这是真的吗?
那么,我是否在此代码中适当地使用了异常:
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;
}
}
还是那么穷?现在,底层代码可以执行此操作:
$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"
}
还是我在这里完全迷失了?