【问题标题】:How can I ignore exception in php [duplicate]如何忽略php中的异常[重复]
【发布时间】:2014-01-05 00:15:37
【问题描述】:

我正在这样做:

try
{
    $result=100/0;
}
catch(Exception $e)
{
    $result=0;
}

我得到除零异常:

警告:除以零

但我想在发生异常时使结果为零。我该怎么做。谢谢,

【问题讨论】:

  • 没什么可问的,因为你做得很好。
  • 一般情况下,您应该避免忽略此类异常,只需先检查您没有除以 0。例外适用于特殊用例。
  • 您收到的是警告而不是异常。

标签: php exception-handling cakephp-2.0


【解决方案1】:

您可以使用ErrorException 将 PHP 警告/错误作为异常抛出:

function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    if ( 'Division by zero' == $errstr) {
        throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
    }
}
set_error_handler("exception_error_handler");

try
{
    $result=100/0;
}
catch(Exception $e)
{
    $result=0;
}

echo $result;

【讨论】:

    【解决方案2】:

    与其捕获异常(尽管正如 tlenss 所指出的那样,您会收到警告)并忽略它(因为您可能会错过其他重要异常,请考虑先检查除法。即

    $divisor = 0;
    $num = 100;
    if($divisor){
        $result=100/0;
    }else{
        $result = 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-03-03
      • 2019-01-16
      • 2015-05-25
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多