Php try catch无法运行PHP7.0.4
原因可能是什么? 我该怎么修理? 他正在使用PHP5.3。 7.0.4版本不起作用。除以零返回警告,异常处理程序无法捕获警告。请看 很抱歉,我现在明白了。除以零返回警告,而异常处理程序无法捕获警告。请看Php try catch无法运行PHP7.0.4,php,exception,Php,Exception,原因可能是什么? 我该怎么修理? 他正在使用PHP5.3。 7.0.4版本不起作用。除以零返回警告,异常处理程序无法捕获警告。请看 很抱歉,我现在明白了。除以零返回警告,而异常处理程序无法捕获警告。请看 抱歉,我现在明白了。首先,您发布的代码在PHP5和PHP7上的工作原理相同。它没有在PHP5上抛出异常;这个功能(抛出异常而不是触发运行时错误和警告)是在PHP7中引入的 您可以在PHP5中(现在仍然可以在PHP7中)安装一个错误处理程序,将错误转换为异常并抛出它们。已经有几个链接(在其他答案和
抱歉,我现在明白了。首先,您发布的代码在PHP5和PHP7上的工作原理相同。它没有在PHP5上抛出异常;这个功能(抛出异常而不是触发运行时错误和警告)是在PHP7中引入的 您可以在PHP5中(现在仍然可以在PHP7中)安装一个错误处理程序,将错误转换为异常并抛出它们。已经有几个链接(在其他答案和评论中)指向显示此技术的答案 新类的文档(在PHP7中引入)解释了: 当试图将数字除以零时,将抛出
divisionbyzerorer
不幸的是,异常似乎只在$x%0
和intdiv($x,0)
上引发。使用常规除法运算符$x/0
进行的零除法不会引发异常,它的工作方式与在PHP5上的工作方式相同(即触发警告)
PHP支持网站上有关于这种情况的报告,但它被正式归类为“非bug”,因为除法运算符/
生成一个浮点数,并且浮点数表示为±INF
或NaN
提供支持
总之,在PHP7中,使用
/
除以零会触发警告并返回INF
或-INF
。除法器为零时,只有模运算符(%
)和整数除法(函数)抛出。首先,您发布的代码在PHP5和PHP7上的效果相同。它没有在PHP5上抛出异常;这个功能(抛出异常而不是触发运行时错误和警告)是在PHP7中引入的
您可以在PHP5中(现在仍然可以在PHP7中)安装一个错误处理程序,将错误转换为异常并抛出它们。已经有几个链接(在其他答案和评论中)指向显示此技术的答案
新类的文档(在PHP7中引入)解释了:
当试图将数字除以零时,将抛出divisionbyzerorer
不幸的是,异常似乎只在$x%0
和intdiv($x,0)
上引发。使用常规除法运算符$x/0
进行的零除法不会引发异常,它的工作方式与在PHP5上的工作方式相同(即触发警告)
PHP支持网站上有关于这种情况的报告,但它被正式归类为“非bug”,因为除法运算符/
生成一个浮点数,并且浮点数表示为±INF
或NaN
提供支持
总之,在PHP7中,使用
/
除以零会触发警告并返回INF
或-INF
。除法器为零时,只有模运算符(%
)和整数除法(函数)抛出。我终于找到了问题的解决方案。
编写此代码后,您可以控制异常,例如Java和其他语言中的异常
function myErrorHandler($errno, $errstr, $errfile, $errline) {
if (!!$errstr) {
throw new Exception($errstr);
}
return false;
}
set_error_handler('myErrorHandler');
我终于找到了解决问题的办法。 编写此代码后,您可以控制异常,例如Java和其他语言中的异常
function myErrorHandler($errno, $errstr, $errfile, $errline) {
if (!!$errstr) {
throw new Exception($errstr);
}
return false;
}
set_error_handler('myErrorHandler');
“他在使用PHP5.3”-也许你有一个将警告“转换”为异常的设置。你读过吗?PHP网站上@Egg链接的评论有误导性。示例代码不起作用。它定义了一个错误处理程序,但没有安装。“他在使用PHP5.3”-也许你有一个将警告“转换”为异常的设置。你读过吗?PHP网站上由@Egg链接的评论有误导性。示例代码不起作用。它定义了一个错误处理程序,但没有安装。你链接到的答案是5年前写的。它肯定不包括PHP7。对不起,你是对的。关于被零除。不幸的是,它不是那么简单。该文件具有误导性:-(阅读了解详细信息。这是无用的。让我们承认。PHP异常中的一次失败。甚至是一次完全的PHP失败。我不知道为什么我仍在尝试学习PHP。您链接到的答案是5年前写的。它绝对不包括PHP 7。抱歉,您是对的。关于除以零。不幸的是,它没有那么简单。文档误导:-(阅读了解详细信息。这是无用的。让我们承认。PHP异常中的一次失败。甚至是一次完全的PHP失败。我不知道为什么我仍在尝试学习PHP。事实上,这就是学习PHP的方法。这也是由PHP建议的。PHP 7将以前版本中触发的一些警告和错误更改为异常。希望它们能继续学习PHP改变这一趋势,在将来的某个时候,我们将不需要编写代码来将错误转换为异常。事实上,这就是实现这一点的方法。这也是由PHP建议的。PHP 7将以前版本中触发的一些警告和错误更改为异常。让我们希望他们将继续这一趋势,在将来的某个时候,我们将在上,不需要编写代码将错误转换为异常。
function myErrorHandler($errno, $errstr, $errfile, $errline) {
if (!!$errstr) {
throw new Exception($errstr);
}
return false;
}
set_error_handler('myErrorHandler');
try{
//division by zero
//$number = 5/0;
unlink("c:\boot.bat");
$a=5+3;
echo $a;
}
catch(Exception $ex){
echo "Dotum bi hata yapmış olmalısın mesaj bu:".$ex->getMessage(), ' : Hadi kolay gelsin sana canım';
}