|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-08-31 16:40 UTC] lgandras at gmail dot com
Description:
------------
This is the output of my console:
# /usr/local/bin/php -v
PHP 5.3.16 (cli) (built: Aug 30 2012 18:38:54)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
# /usr/local/bin/php -r 'set_exception_handler(function(){echo "catched\n";});throw new Exception;'
Fatal error: Uncaught exception 'Exception' in Command line code on line 1
Exception: in Command line code on line 1
Call Stack:
0.0002 632056 1. {main}() Command line code:0
root@vps:~#
Test script:
---------------
# /usr/local/bin/php -r 'set_exception_handler(function($e){echo "catched!\n";});throw new Exception;'
Expected result:
----------------
catched!
Actual result:
--------------
Fatal error: Uncaught exception 'Exception' in Command line code on line 1
Exception: in Command line code on line 1
Call Stack:
0.0002 632056 1. {main}() Command line code:0
Patchesbug62985.patch (last revision 2012-08-31 17:29 UTC by laruence@php.net)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Dec 04 20:00:01 2025 UTC |
Temporary solution echo '<?php set_exception_handler(function($e){echo "catched\n";});throw new Exception;' | /usr/local/bin/phpI see the same in PHP 5.6.0RC2 on Debian GNU/Linux. This does not appear to be a configuration issue as the same script handles the exception when run with CLI as a file with the *same* configuration. The manual does not say anything about that, but someone reported the this problem in the user comments 8 years ago. Why is this bug marked WONTFIX? Steps to reproduce the problem (from bash command line): $ cat php55-exceptions.php <?php set_exception_handler(function (Exception $ex) { echo 42 . PHP_EOL; }); throw new Exception(); $ sed -n '2,$p' php55-exceptions.php set_exception_handler(function (Exception $ex) { echo 42 . PHP_EOL; }); throw new Exception(); $ php -r "$(sed -n '2,$p' php55-exceptions.php)" PHP Fatal error: Uncaught exception 'Exception' in Command line code:6 Stack trace: #0 {main} thrown in Command line code on line 6 $ php php55-exceptions.php 42 Versions and configuration: $ php -r 'phpinfo(INFO_GENERAL);' phpinfo() PHP Version => 5.6.0RC2 System => Linux pe-mobil2.localdomain 3.4.87-pe #1 SMP Mon Apr 21 15:20:23 CEST 2014 i686 Build Date => Jul 22 2014 22:49:54 Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini Scan this dir for additional .ini files => /etc/php5/cli/conf.d Additional .ini files parsed => /etc/php5/cli/conf.d/05-opcache.ini, /etc/php5/cli/conf.d/10-pdo.ini, /etc/php5/cli/conf.d/20-curl.ini, /etc/php5/cli/conf.d/20-gd.ini, /etc/php5/cli/conf.d/20-imagick.ini, /etc/php5/cli/conf.d/20-intl.ini, /etc/php5/cli/conf.d/20-json.ini, /etc/php5/cli/conf.d/20-mcrypt.ini, /etc/php5/cli/conf.d/20-memcache.ini, /etc/php5/cli/conf.d/20-mysql.ini, /etc/php5/cli/conf.d/20-mysqli.ini, /etc/php5/cli/conf.d/20-pdo_mysql.ini, /etc/php5/cli/conf.d/20-readline.ini, /etc/php5/cli/conf.d/20-xdebug.ini, /etc/php5/cli/conf.d/20-xsl.ini PHP API => 20131106 PHP Extension => 20131226 Zend Extension => 220131226 Zend Extension Build => API220131226,NTS PHP Extension Build => API20131226,NTS Debug Build => no Thread Safety => disabled Zend Signal Handling => disabled Zend Memory Manager => enabled Zend Multibyte Support => provided by mbstring IPv6 Support => enabled DTrace Support => enabled Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2 Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.* This program makes use of the Zend Scripting Language Engine: Zend Engine v2.6.0-dev, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies with Xdebug v2.2.4, Copyright (c) 2002-2014, by Derick Rethans $ dpkg -l 'php5*' | awk '/^.i/ {print $2, $3}' php5 5.6.0~rc2+dfsg-5 php5-apcu 4.0.6-1 php5-cgi 5.6.0~rc2+dfsg-5 php5-cli 5.6.0~rc2+dfsg-5 php5-common 5.6.0~rc2+dfsg-5 php5-curl 5.6.0~rc2+dfsg-5 php5-gd 5.6.0~rc2+dfsg-5 php5-imagick 3.1.2-1+b1 php5-intl 5.6.0~rc2+dfsg-5 php5-json 1.3.5-3 php5-mcrypt 5.6.0~rc2+dfsg-5 php5-memcache 3.0.8-4+b1 php5-mysql 5.6.0~rc2+dfsg-5 php5-readline 5.6.0~rc2+dfsg-5 php5-xdebug 2.2.4-1+b1 php5-xsl 5.6.0~rc2+dfsg-5 Changes to php.ini: $ diff -u /usr/share/php5/php.ini-production.cli /etc/php5/cli/php.ini --- /usr/share/php5/php.ini-production.cli 2014-07-23 01:11:03.000000000 +0200 +++ /etc/php5/cli/php.ini 2014-06-02 13:05:31.000000000 +0200 @@ -83,8 +83,6 @@ ; development version only in development environments, as errors shown to ; application users can inadvertently leak otherwise secure information. -; This is php.ini-production INI file. - ;;;;;;;;;;;;;;;;;;; ; Quick Reference ; ;;;;;;;;;;;;;;;;;;; @@ -231,7 +229,7 @@ ; Development Value: 4096 ; Production Value: 4096 ; http://php.net/output-buffering -output_buffering = 4096 +output_buffering = Off ; You can redirect all of the output of your scripts to a function. For ; example, if you set output_handler to "mb_output_handler", character @@ -276,7 +274,7 @@ ; implications and is generally recommended for debugging purposes only. ; http://php.net/implicit-flush ; Note: This directive is hardcoded to On for the CLI SAPI -max_execution_time = 30 +max_execution_time = 30000 ; Maximum amount of time each script may spend parsing request data. It's a good ; idea to limit this time on productions servers in order to eliminate unexpectedly @@ -710,6 +708,7 @@ ; UNIX: "/path1:/path2" ;include_path = ".:/usr/share/php" +include_path = ".:/usr/share/php:/home/pelinux/LCARS/scripts/php" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" @@ -882,7 +881,7 @@ [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone -;date.timezone = +date.timezone = Europe/Zurich ; http://php.net/date.default-latitude ;date.default_latitude = 31.7667 @@ -1686,7 +1685,6 @@ ; http://php.net/mbstring.language ;mbstring.language = Japanese -; Use of this INI entry is deprecated, use global internal_encoding instead. ; internal/script encoding. ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. Backtrace: I do not have a debug build of PHP. Please tell me if I need to make one in this case (not a PHP crash).The same incorrect behavior in interactive mode: $ php -a Interactive mode enabled php > set_exception_handler(function(){echo "catched\n";}); php > throw new Exception; PHP Warning: Uncaught Exception in php shell code:1 Stack trace: #0 {main} thrown in php shell code on line 1 php > ^D $ php -v PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies $