如何在PHP中处理异常?例如,在这样的代码中:
<?php
$a=5;
$b=0
$c=($a/$b);
echo $c;
?>
请帮帮我。
答案 0 :(得分:1)
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();
}
答案 1 :(得分:0)
据我所知,PHP不会在除以零时抛出异常。我测试了5.3,它会触发警告,因此所有较小版本都会发出警告。所以把它放在试块中不会做任何事情。您可以使用ErrorException类将PHP错误映射到异常,并且可以使用错误和异常处理程序。请参阅https://github.com/sam-at-github/php_error_exceptions以了解该问题的参考实现。
答案 2 :(得分:-1)
首先:你在第二行代码处进行除法(可以将其除零)。
第二个:无需在方法中返回false,因为您输入了错误。
第三:为什么在这里使用异常而不只是让你的方法返回true为false并在执行devision之前检查它。
第四:如果您只需要检查$ y的值,为什么要使用方法。调用方法或包含if语句只需要一行代码。
那么,为什么它不能就像:
case '/':
if($b > 0)
$prod = $a / $b;
break;