我只是想在try-catch块周围放一个算术表达式。
这是我尝试过的:
try
{
$result = 4/0;
}
catch (Exception $e)
{
d($e->getMessage());
}
但是代替打印$e->getMessage()
,它显示的是Internal Server Error Division By Zero
,如果我不使用任何try-catch,它会显示类似的内容。
我在做什么错了?
答案 0 :(得分:1)
您必须使用此:
* !!vue-style-loader!css-loader?{"sourceMap":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-2ec75e7e","scoped":false,"hasInlineConfig":false}!less-loader?{"sourceMap":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Footer.vue in ./src/components/main/Footer.vue
To install it, you can run: npm install --save !!vue-style-loader!css-loader?{"sourceMap":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-2ec75e7e","scoped":false,"hasInlineConfig":false}!less-loader?{"sourceMap":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./F
PHP手册:http://php.net/manual/en/class.divisionbyzeroerror.php(从try
{
$result = intdiv(4, 0);
}
catch(DivisionByZeroError $e)
{
d($e->getMessage());
}
开始使用)
更新::使用intdiv()
-整数除法(从PHP 7
开始使用)
答案 1 :(得分:1)
您无法使用常规算法捕获DivisionByZeroError,因为PHP认为它是警告,而不是错误。相反,您需要设置一个错误处理程序来寻找它,例如
function handler($errno, $error) {
if ($error == "Division by zero") {
echo "Error $errno! $error\n";
return;
}
// hand processing back to the standard handler
return false;
}
set_error_handler('handler');
$result = 4/0;
输出:
Error 2! Division by zero
请注意,如果这不是您要查找的错误,则错误处理程序应将控制权返回到标准处理程序(通过返回false
)。