jjzjj

php - 将错误作为异常处理。最好的方法?

我想弄清楚是否有比我在下面所做的更好或更好的方法来处理PHP中的错误。如果parse_ini_file调用有问题,我想抛出异常。这行得通,但是是否有更优雅的方法来处理错误?publicstaticfunctionloadConfig($file,$type){if(!file_exists($file)){require_once'Asra/Core/Exception.php';thrownewAsra_Core_Exception("{$type}filewasnotpresentatspecifiedlocation:{$file}");}//--cleartheerrorsel

PHP 异常处理程序终止脚本

基本上我有一个自定义异常处理程序。当我处理异常时,我只希望它回显消息并继续执行脚本。但是在我的方法处理了异常之后,脚本没有继续。这是php的行为还是我的异常处理程序做错了什么? 最佳答案 这是php的一个行为。根据set_exception_handler()上的手册,这与set_error_handler()的不同之处在于,调用exception_handler后会停止执行。因此,请确保捕获所有异常,只让那些您想要杀死您的脚本。这实际上就是为什么set_error_handler()在将所有错误转换为异常时不能很好地与异常和set

php - 捕获不工作以及如何取消设置异常处理程序

catch不工作,因为使用set_exception_handler()安装了异常处理程序我需要“catch”才能工作,所以我想我需要以某种方式取消设置异常处理程序。set_exception_handler(NULL)之类的东西不起作用。对如何取消设置异常处理程序有任何想法吗?functionmy_exception_handler($exception){error_log("caughtexception:".$exception->getMessage());}set_exception_handler("my_exception_handler");//QUESTION:ho

php - 使用链接将 PHP 错误输出更改为自定义消息

如何更改php错误的错误输出?例如,如果出现语法错误或服务器端超时,我想回显一条允许用户刷新页面的消息。这是我要将错误消息添加到的代码:$XML->registerXPathNamespace('tree','www.tree.com'); 最佳答案 使用函数set_error_handler定义出现错误时要调用的自定义函数。然后,您可以决定在出现错误的情况下在该函数内执行任何您想执行的操作。如果你只需要它一段时间,你可以在之后使用restore_error_handler恢复它.set_error_handler('yourHan

PHP - 500 而不是错误

我有一个用PHP编写的页面。我无权访问服务器。我想这样做,而不是在PHP遇到错误时显示错误消息,而是给出500。 最佳答案 如果display_errors关闭,PHP5.2默认情况下会在发生fatalerror时发送HTTP500。如果托管使用较旧的PHP,则必须注册自己的errorhandler可能还有exceptionhandler并将用户重定向到您的500错误页面。尝试按照@Umang的建议在PHP脚本中设置display_errors和error_reporting变量。 关于

php - php.ini 中 apache2handler 下的超时设置是什么?会影响 session 超时吗?

我想知道php.ini中apache2handler下面的内容是什么意思TimeoutsConnection:10-Keep-Alive:10我遇到10分钟不活动后session超时的问题,我想知道以上是否是导致session在10分钟而不是4小时内超时的原因,如下所示。目前我在php.ini下的session设置是这样设置的:session.cache_expire180180session.cache_limiternocachenocachesession.entropy_length00session.gc_divisor101000session.gc_maxlifetime

php - Apache2,线程。 fatal error 。 pthreads 不支持 apache2handler SAPI

我的ubuntu上有apache2网络服务器。我需要安装pthreads,所以我从rep(复制到/ext/)克隆了php7和pthreads的源代码。我为php安装了所有库,然后运行​​./buildconf和./configure--prefix=/usr--with-config-file-path=/etc--enable-bcmath--enable-calendar--enable-cli--enable-debug--enable-dba--enable-exif--enable-ftp--enable-gd-native-ttf--enable-mbregex--enab

php - 可以为库代码而不是我的代码关闭 E_STRICT?

是否可以更改我的PHP应用程序使用include或require_once包含的文件的错误报告级别(关闭E_STRICT)?我希望能够看到我的代码中出现的严格通知,但我使用的是PEARMDB2,当我打开E_STRICT时,我会从该代码中获得警告页面。我知道可以使用.htaccess文件在每个目录的基础上更改error_reporting,但我认为这不适用于包含的文件。我试着把它放在pear文件夹中,但它什么也没做。 最佳答案 你可以defineacustomerrorhandler,并使用$errfile参数来确定错误的来源。如果该

php - 在 php 中创建错误处理程序类

我最近一直在问异常和处理异常等问题,whichasrecentlybestexplainedtomeinthisquestion.我现在的问题是我将如何使用set_exception_handler();在一个类中设置一个错误处理类,在php中,当有错误被抛出时,由这个类来处理。正如定义所述:Setsthedefaultexceptionhandlerifanexceptionisnotcaughtwithinatry/catchblock.Executionwillstopaftertheexception_handleriscalled.我在想我可以做这样的事情:classTest

php - session_set_save_handler 并写在 php 5.4.12 上

我正在使用session_set_save_handler()将session保存到数据库。从phpv.5.3移动到v.5.4之后,根本没有调用write()函数;无论是在调用session_write_close()函数时,还是在脚本终止时(它之前工作正常并且没有对代码进行任何更改)。read()、open()和close()函数仍然像往常一样被调用。我知道php5.4中有一些与session_set_save_handler()机制相关的变化。有没有人有类似的问题或知道发生了什么变化?classsession{private$table_name;function__constru