modified ErrorHandler not to process error closed by @

This commit is contained in:
Anton Grebnev
2012-10-05 19:38:24 +04:00
parent 9d0e22ebd2
commit 8d60abe7d1
2 changed files with 17 additions and 1 deletions

View File

@ -23,7 +23,10 @@ class ErrorHandler
if (!empty($ob_handlers)) { if (!empty($ob_handlers)) {
ob_end_clean(); ob_end_clean();
} }
throw new ErrorException($errstr, 0, $errno, $errfile, $errline); if (error_reporting() !== 0) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
return true;
} }
static protected function getSource($file, $hiline) static protected function getSource($file, $hiline)

View File

@ -39,6 +39,19 @@ class ErrorHandlerTest extends PHPUnit_Framework_TestCase
trigger_error("test error", E_USER_ERROR); trigger_error("test error", E_USER_ERROR);
} }
public function testHandleAt()
{
$my_eh = array('ErrorHandler', 'error_handler');
ErrorHandler::init();
set_error_handler($my_eh);
$var = '';
$ok = @$var['some'];
$this->assertSame('', $var);
ob_start();
$this->setExpectedException('ErrorException');
$ex = $var['some'];
}
/** /**
* @TODO: ErrorHandler->wrapTrace() not used * @TODO: ErrorHandler->wrapTrace() not used
*/ */