[英]Exception handling in this PHP?
如何处理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错误映射到Exceptions,并通过错误和异常处理程序解决一些问题。 请参阅https://github.com/sam-at-github/php_error_exceptions以获取有关该错误的参考实现。
首先:您正在对第二行代码进行除法(可以除以零)。
第二:由于抛出错误,因此无需在方法中返回false。
第三:为什么在这里使用异常,而不仅仅是让您的方法返回true到false并在执行分区之前对其进行检查。
第四:如果只需要检查$ y的值,为什么要有一个方法。 调用该方法或包含if语句仅需要一行代码。
所以,为什么不能这样:
case '/':
if($b > 0)
$prod = $a / $b;
break;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.