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