回答
PHP不会抛出异常而引发警告和错误消息,因此您无法在此处找到任何东西。但是,您可以修改此行为:
// Register a custom error handler that throws an ErrorException
// whenever a warrning or error occurs
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
});
$a = 5;
$b = 0;
// Now a division by zero will result into an ErrorException being thrown
try {
$c = $a/$b;
echo $c;
} catch (ErrorException $e) {
echo 'Error: ' . $e->getMessage();
}
它的工作。但是如果你解释了set_error_handler(函数($ errno,$ errstr,$ errfile,$ errline){0},则抛出新的ErrorException($ errstr,0,$ errno,$ errfile,$ errline); });那么它会清除我的理解。谢谢。 – ripa 2013-02-11 10:47:47
这会注册一个自定义错误处理程序 - 默认情况下,PHP会将错误消息记录或打印到屏幕上。通过注册一个自定义错误处理程序,您告诉PHP您希望以不同方式处理错误消息。 PHP然后调用错误处理程序而不是输出消息。在这种情况下,错误处理程序会引发异常,即将错误消息转换为异常。 – Niko 2013-02-11 16:01:13
第一个:您正在第二行代码(它可以被零分割)进行分割。
第二个:由于抛出错误,不需要在方法中返回false。
第三:为什么在这里使用一个异常,而不仅仅是让你的方法在执行devision之前返回true和false。
第四:为什么有一个方法,如果你只需要检查$ y的值。调用方法或包含if语句只需要一行代码。
那么,为什么不能只是像:
case '/':
if($b > 0)
$prod = $a/$b;
break;
据我所知PHP不会被零扔在分裂异常。我测试了5.3,它触发了一个警告,所有更小的版本。所以把它放在try块中不会做任何事情。您可以使用ErrorException类将PHP错误映射为Exceptions,并且可以使用错误和异常处理程序进行调试。请参阅https://github.com/sam-at-github/php_error_exceptions,以获取有关拧紧的参考实现。
- 1. 在PHP中处理异常
- 2. php:在异常处理程序中处理异常?
- 3. 如何处理这个异常?
- 4. C#我如何处理这个异常?
- 5. php symfony异常处理/错误处理
- 6. PHP处理异常空处理
- 7. PHP SimpleTest - 处理异常
- 8. PHP异常处理vs C#
- 9. PHP get_headers异常处理
- 10. 处理Python异常/ PHP中的错误
- 11. 如何处理这个异常:无效操作异常
- 12. 在PHP中处理外键异常
- 13. 如何处理异常处理代码中的异常?
- 14. 这是正确使用的PHP异常处理/ Symfony2的
- 15. 异常处理
- 16. 处理异常
- 17. 异常处理
- 18. 异常处理
- 19. 异常处理
- 20. 异常处理
- 21. 处理异常
- 22. 异常处理
- 23. 异常处理
- 24. 异常处理
- 25. 异常处理
- 26. 异常处理?
- 27. 异常处理
- 28. 异常处理
- 29. 异常处理
- 30. 异常处理
可能重复[PHP:例外与错误?](http://stackoverflow.com/questions/841500/php-exceptions-vs-errors)。确保你检查了所有答案。 – 2013-02-11 10:18:00
默认情况下,这会引发警告而不是例外。 – Niko 2013-02-11 10:18:57