php中的错误处理,死亡与异常

Zer*_*f3r 4 php exception

例如,我的用法是:

$check = 'no';

if($check == 'yes') {
   //do stuff
} else {
      die('Error found');
}
Run Code Online (Sandbox Code Playgroud)

许多开发人员使用的是:

if($check == 'yes') {
      //do stuff
   } else {
      throw new Exception('Error found.');
   }
Run Code Online (Sandbox Code Playgroud)
  1. 哪种方法"更好"?
  2. 任何好处都抛出异常而不是停止执行脚本?

小智 7

我想为大家节省一些麻烦,并在这里引用你的这个堆栈:PHP错误处理:die()Vs trigger_error()Vs抛出异常 非常详细的解释它们的用途,我相信它不能说更好.


hak*_*kre 1

哪一种方法“更好”?

这取决于您的需求。不能说哪一种更好(当您真正想讨论错误处理时,还应该考虑其他错误处理方法,而本网站可能不适合讨论)。

抛出异常而不是停止执行脚本有什么好处吗?

异常可以被捕获,异常die不能被捕获。例如,如果您想测试您的代码,dies 通常是一个令人惊叹的东西。

其次,异常可以携带更多信息并且携带得更精确。例如,带有异常的消息比带有die. 异常将文件和行保留在抛出的位置。为了调试,有堆栈跟踪等。