$ php_errormsg而不是异常

时间:2014-01-10 09:41:32

标签: php

我们正在制作一个表单来上传Laravel 4中的一些文件,我们拥有的上传档案相当大,最高可达500MB左右。

我希望我们的系统在POST大小超过 post_max_size 中设置的大小时抛出异常,但是我们看到PHP设置的变量{{1}而不是PHP抛出异常。并且应用程序继续,没有任何$php_errormsg数据。

有没有办法配置PHP自动为这种错误抛出异常,或者我需要编写一些逻辑检查,例如$ php_errormsg等的存在。

我认为这是一种相当奇怪的方式来处理这种错误。为什么偏离标准PHP异常?

我做的另一个观察是$ php_errormsg变量仅在我在index.php中检查它时才存在,在初始应用程序入口点,但是当Laravel 4到达控制器动作时,根本没有任何概念出错了,$ php_errormsg丢失了,并且没有抛出Exception,并且因为$_POST被淘汰,我们得到了缺少必填字段而不是实际字段的验证错误:

  

POST内容 - x字节的长度超过x的限制   字节

Debugging with XDebug in IntelliJ

1 个答案:

答案 0 :(得分:0)

在我的控制器中添加以下代码:

global $php_errormsg;
if (!is_null($php_errormsg)) {
    throw new Exception($php_errormsg);
}

我可以适当地显示错误,并通过向用户显示正确的错误消息来处理错误。