本文整理汇总了PHP中ErrorException::getTraceAsString方法的典型用法代码示例。如果您正苦于以下问题:PHP ErrorException::getTraceAsString方法的具体用法?PHP ErrorException::getTraceAsString怎么用?PHP ErrorException::getTraceAsString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ErrorException
的用法示例。
在下文中一共展示了ErrorException::getTraceAsString方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handleErrorException
protected function handleErrorException(\ErrorException $e)
{
switch ($e->getSeverity()) {
case E_ERROR:
case E_RECOVERABLE_ERROR:
case E_CORE_ERROR:
case E_COMPILE_ERROR:
case E_USER_ERROR:
case E_PARSE:
$this->logger->error($e->getMessage() . $e->getTraceAsString());
break;
case E_WARNING:
case E_USER_WARNING:
case E_CORE_WARNING:
case E_COMPILE_WARNING:
$this->logger->warning($e->getMessage() . $e->getTraceAsString());
break;
case E_NOTICE:
case E_USER_NOTICE:
$this->logger->notice($e->getMessage() . $e->getTraceAsString());
break;
case E_STRICT:
case E_DEPRECATED:
case E_USER_DEPRECATED:
$this->logger->info($e->getMessage() . $e->getTraceAsString());
break;
}
return true;
}
示例2: handleErrorException
public function handleErrorException(\ErrorException $exception)
{
$message = sprintf('%s: %s in %s:%d', $this->errorCodeName($exception->getCode()), $exception->getMessage(), $exception->getFile(), $exception->getLine());
$exception_trace = $exception->getTraceAsString();
$exception_trace = substr($exception_trace, strpos($exception_trace, PHP_EOL) + 1);
$message .= PHP_EOL . $exception_trace;
$this->save($message);
}
示例3: handle
static function handle($code, $message, $file, $line, $context)
{
echo "\n" . static::$codeMap[$code] . ': ' . $message . "\n";
echo "#0 " . $file . '(' . $line . ")\n";
$exception = new ErrorException('', $code, 0, $file, $line);
$trace = $exception->getTraceAsString();
$trace = preg_replace('~^.*?\\n|\\n.*?$~', '', $trace);
echo $trace . "\n";
return true;
}
示例4: getInstance
/**
* @return \Sooh\DB\Interfaces\All
*/
public static function getInstance($arrConf_or_Index = null, $modName = null)
{
if (is_array($arrConf_or_Index)) {
$conf = $arrConf_or_Index;
} else {
$ini = sooh_ini::getInstance();
if ($arrConf_or_Index === null) {
$conf = $ini->get('dbConf');
if (isset($conf['default'])) {
$conf = $conf['default'];
} elseif (is_array($conf)) {
$conf = current($conf);
} else {
throw new \ErrorException('default dbConf not found');
}
} else {
$conf = $ini->get('dbConf.' . $arrConf_or_Index);
}
}
if (!isset($conf['name']) || $modName !== null) {
if (isset($conf['dbEnums'][$modName])) {
$conf['name'] = $conf['dbEnums'][$modName];
} else {
$conf['name'] = $conf['dbEnums']['default'];
}
}
$id = self::idOfConnection($conf);
if (empty(self::$_instances[$id])) {
$type = $conf['type'];
if (empty($type)) {
$ttmp = $ini->get('dbConf');
if (is_array($ttmp)) {
$ttmp = implode(',', array_keys($ttmp));
} else {
$ttmp = 'EMPTY';
}
$err = new \ErrorException('db-config missing:' . json_encode($arrConf_or_Index) . ' current:' . $ttmp);
error_log($err->getMessage() . "\n" . $err->getTraceAsString());
throw $err;
}
$class = '\\Sooh\\DB\\Types\\' . ucfirst($type);
// if (!class_exists($class, false))
// include __DIR__ . '/' . $class . '.php';
self::$_instances[$id] = new $class($conf);
self::$_instances[$id]->dbConf = $conf;
if (sooh_trace::needsWrite(__CLASS__)) {
sooh_trace::str('create new connection[' . $id . '] of ' . json_encode($conf));
}
} else {
if (sooh_trace::needsWrite(__CLASS__)) {
sooh_trace::str('exists connection[' . $id . '] of ' . json_encode($conf));
}
}
return self::$_instances[$id];
}
示例5: append
public function append($k, $v = null, $ifRealAppend = 'throwError')
{
if ($this->dbClass == null) {
throw new \ErrorException('thisWhere ended already');
}
if ($ifRealAppend === false) {
return $this;
}
$bakTb = $this->dbClass->_tmpObj($this->forTable);
if (empty($v) && is_array($v)) {
if ($ifRealAppend === 'markEmptyArray') {
$this->_emptyWhere[] = $k;
return $this;
} else {
$err = new \ErrorException('empty Array was Found when build where');
error_log($err->getMessage() . "\n" . $err->getTraceAsString());
throw $err;
}
}
if (is_array($k)) {
foreach ($k as $i => $v) {
if (is_numeric($i)) {
$this->append(null, $v);
} else {
$this->append($i, $v);
}
}
} elseif (is_null($k)) {
if (is_scalar($v)) {
$err = new \ErrorException();
error_log("should avoid:where->append(null,'sql-statement')\n" . $err->getTraceAsString());
$this->r[] = $v;
} else {
$tmp = trim($v->end());
if (!empty($tmp)) {
$tmp = '(' . substr($tmp, 6) . ')';
}
$this->r[] = $tmp;
}
} else {
$this->r[] = $this->conv($k, $v);
}
$this->dbClass->_tmpObj($bakTb);
return $this;
}
示例6: DBErrorException
/**
* Store Error exceptions to database from prepared statement
*
* @param ErrorException $err_exc The error exception
* @return void
*/
public function DBErrorException(\ErrorException $err_exc)
{
if (!$this->error_stm instanceof API\Interfaces\PDOStatement) {
$this->registerPDOStatement();
}
$this->error_stm->{$this->binders['message']} = $err_exc->getMessage();
$this->error_stm->{$this->binders['code']} = $err_exc->getCode();
$this->error_stm->{$this->binders['severity']} = $err_exc->getSeverity();
$this->error_stm->{$this->binders['file']} = $err_exc->getFile();
$this->error_stm->{$this->binders['line']} = $err_exc->getLine();
$this->error_stm->{$this->binders['trace']} = $err_exc->getTraceAsString();
$this->error_stm->execute();
}
示例7: errorHandler
/**
* Scalr error handler
*
* @param int $errno
* @param string $errstr
* @param string $errfile
* @param int $errline
* @throws \Exception
*/
public static function errorHandler($errno, $errstr, $errfile, $errline)
{
// Handles error suppression.
if (0 === error_reporting()) {
return false;
}
//Friendly error name
switch ($errno) {
case E_NOTICE:
$errname = 'E_NOTICE';
break;
case E_WARNING:
$errname = 'E_WARNING';
break;
case E_USER_DEPRECATED:
$errname = 'E_USER_DEPRECATED';
break;
case E_STRICT:
$errname = 'E_STRICT';
break;
case E_USER_NOTICE:
$errname = 'E_USER_NOTICE';
break;
case E_USER_WARNING:
$errname = 'E_USER_WARNING';
break;
case E_COMPILE_ERROR:
$errname = 'E_COMPILE_ERROR';
break;
case E_COMPILE_WARNING:
$errname = 'E_COMPILE_WARNING';
break;
case E_CORE_ERROR:
$errname = 'E_CORE_ERROR';
break;
case E_CORE_WARNING:
$errname = 'E_CORE_WARNING';
break;
case E_DEPRECATED:
$errname = 'E_DEPRECATED';
break;
case E_ERROR:
$errname = 'E_ERROR';
break;
case E_PARSE:
$errname = 'E_PARSE';
break;
case E_RECOVERABLE_ERROR:
$errname = 'E_RECOVERABLE_ERROR';
break;
case E_USER_ERROR:
$errname = 'E_USER_ERROR';
break;
default:
$errname = $errno;
}
$message = "Error {$errname} {$errstr}, in {$errfile}:{$errline}\n";
switch ($errno) {
case E_USER_NOTICE:
case E_NOTICE:
//Ignore for a while.
break;
case E_CORE_ERROR:
case E_ERROR:
case E_USER_ERROR:
case E_RECOVERABLE_ERROR:
$exception = new \ErrorException($errname, $errno, 0, $errfile, $errline);
$message = $message . "Stack trace:\n " . str_replace("\n#", "\n #", $exception->getTraceAsString());
@error_log($message);
throw $exception;
break;
case E_WARNING:
case E_USER_WARNING:
$exception = new \ErrorException($errname, $errno, 0, $errfile, $errline);
$message = $message . "Stack trace:\n " . str_replace("\n#", "\n #", $exception->getTraceAsString());
default:
@error_log($message);
break;
}
}
示例8: Config
*
* MPF Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MPF Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MPF Framework. If not, see <http://www.gnu.org/licenses/>.
*/
define('LIBS_FOLDER', dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR);
define('APP_ROOT', __DIR__ . DIRECTORY_SEPARATOR);
/**
* Set ErrorException for every error;
*/
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
$severity = 1 * E_ERROR | 1 * E_WARNING | 1 * E_PARSE | 1 * E_NOTICE | 0 * E_CORE_ERROR | 0 * E_CORE_WARNING | 0 * E_COMPILE_ERROR | 0 * E_COMPILE_WARNING | 1 * E_USER_ERROR | 1 * E_USER_WARNING | 1 * E_USER_NOTICE | 0 * E_STRICT | 0 * E_RECOVERABLE_ERROR | 0 * E_DEPRECATED | 0 * E_USER_DEPRECATED;
$ex = new \ErrorException($errstr, 0, $errno, $errfile, $errline);
if (($ex->getSeverity() & $severity) != 0) {
\mpf\ConsoleApp::get()->error($errstr, array('File' => $errfile, 'Line' => $errline, 'Number' => $errno, 'Trace' => $ex->getTraceAsString()));
}
});
$autoload = (require_once LIBS_FOLDER . 'autoload.php');
use mpf\ConsoleApp as App;
use mpf\base\Config;
new Config(APP_ROOT . 'config' . DIRECTORY_SEPARATOR . 'console.inc.php');
App::run(array('startTime' => microtime(true), 'autoload' => $autoload));
示例9: getField
/**
* 获取某个字段的值
* @param string $field 字段名
* @param boolean $nullAccepted 当取得的值是null的时候,是否应该丢出异常
*/
public function getField($field, $nullAccepted = false)
{
if (!isset($this->r[$field])) {
if ($nullAccepted == false) {
$err = new \ErrorException("fieldGet of {$field} not loaded or is NULL \nwhen request:" . $_SERVER["REQUEST_URI"] . "\n check code of load(cur loaded:" . (is_array($this->r) ? implode(',', array_keys($this->r)) : "NULL") . ")\npkey=" . json_encode($this->pkey));
error_log($err->getMessage() . "\n" . $err->getTraceAsString());
throw $err;
} else {
return null;
}
}
return $this->r[$field];
}
示例10: handleError
public function handleError($severity, $message, $filename, $lineno)
{
if (error_reporting() == 0) {
return;
}
if (error_reporting() & $severity) {
$exception = new ErrorException($message, 0, $severity, $filename, $lineno);
Gpf_Log::warning('Error calling function: ' . $this->getFunctionName($this->callback) . ', with parameters: ' . var_export($this->params, true) . '. Error trace: ' . $exception->getTraceAsString());
if ($severity != E_WARNING && $severity != E_NOTICE) {
throw $exception;
}
}
}
示例11: errorHandler
/**
* Error handler.
*
* Handle errors like PHP does it natively but additionally log them to the
* application error log file.
*
* @param int $intType The type of the error.
*
* @param string $strMessage The error message.
*
* @param string $strFile The file where the error originated from.
*
* @param int $intLine The line on which the error was raised.
*
* @return void
*/
public static function errorHandler($intType, $strMessage, $strFile, $intLine)
{
if ($intType === E_NOTICE && (strpos($strFile, 'system/modules/core') !== false || strpos($strFile, 'system/helper/functions.php') !== false)) {
return;
}
if ($intType != E_WARNING && strpos($strMessage, 'sort(): Array was modified by the user comparison function') !== false) {
// @codingStandardsIgnoreStart
// See:
// http://stackoverflow.com/questions/3235387/usort-array-was-modified-by-the-user-comparison-function
// https://bugs.php.net/bug.php?id=50688
// http://wpdailydose.com/discoveries/array-modified/
// @codingStandardsIgnoreEnd
return;
}
$exception = new \ErrorException(self::getErrorName($intType) . ': ' . $strMessage, 0, $intType, $strFile, $intLine);
if ($intType !== E_NOTICE) {
// Log the error.
error_log(sprintf("\nPHP %s: %s in %s on line %s\n%s\n", self::getErrorName($intType), $strMessage, $strFile, $intLine, $exception->getTraceAsString()));
}
self::addException($exception);
// Exit on severe errors.
if ($intType & (E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR)) {
// Help message will get shown by debugger post mortem.
exit;
}
}
示例12: sp_format_exception
/**
* Format exception and add session, server and post information for easier debugging.
*
* If $full is set to false, only string containing formatted message is returned.
*
* @access public
* @param Exception|ErrorException|mixed $e
* @param bool $full (default: false)
* @return string Returns formatted string of the $e exception
*/
function sp_format_exception($e, $full = false)
{
$session = isset($_SESSION) ? $_SESSION : [];
$post = $_POST;
$message = str_replace("\n", "<br />", $e->getMessage());
$message .= '<br /><br /><strong>Trace:</strong><br /><table border="0" cellspacing="0" cellpadding="5" style="border: 1px #DADADA solid;"><tr><td style="border-bottom: 1px #DADADA solid;">';
$message .= str_replace("\n", '</td></tr><tr><td style="border-bottom: 1px #DADADA solid;">', $e->getTraceAsString()) . '</td></tr></table>';
$session = str_replace(array(" ", "\n"), array(' ', '<br />'), json_encode($session, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : null));
$server = str_replace(array(" ", "\n"), array(' ', '<br />'), json_encode($_SERVER, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : null));
$post = str_replace(array(" ", "\n"), array(' ', '<br />'), json_encode($post, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : null));
if (!empty($full)) {
return "<strong>Error:</strong><br />{$message}<br /><br /><strong>Sesssion Info:</strong><br />{$session}<br /><br /><strong>Post Info:</strong><br />{$post}<br /><br /><strong>Server:</strong><br />{$server}";
} else {
return "<pre><strong>Error:</strong><br />{$message}<br /></pre>";
}
}
示例13: id
try {
TestHelpers::purge($dir);
} catch (Exception $e) {
}
@rmdir($dir);
}
}
}
// create temporary directory
define('TEMP_DIR', __DIR__ . '/../tmp/' . getmypid());
TestHelpers::purge(TEMP_DIR);
// catch unexpected errors/warnings/notices
set_error_handler(function ($severity, $message, $file, $line) {
if (($severity & error_reporting()) === $severity) {
$e = new ErrorException($message, 0, $severity, $file, $line);
echo "Error: {$message} in {$file}:{$line}\nStack trace:\n" . $e->getTraceAsString();
exit(TestCase::CODE_ERROR);
}
return FALSE;
});
$_SERVER = array_intersect_key($_SERVER, array_flip(array('PHP_SELF', 'SCRIPT_NAME', 'SERVER_ADDR', 'SERVER_SOFTWARE', 'HTTP_HOST', 'DOCUMENT_ROOT', 'OS')));
$_SERVER['REQUEST_TIME'] = 1234567890;
$_ENV = $_GET = $_POST = array();
if (PHP_SAPI !== 'cli') {
header('Content-Type: text/plain; charset=utf-8');
}
if (extension_loaded('xdebug')) {
xdebug_disable();
TestHelpers::startCodeCoverage(__DIR__ . '/coverage.dat');
}
function id($val)
示例14: _query
//.........这里部分代码省略.........
}
}
}
$this->_lastCmd->dowhat = strtolower($this->_lastCmd->dowhat);
switch ($this->_lastCmd->dowhat) {
case 'select':
$sql = 'select ';
if (is_array($this->_lastCmd->fromAndSize) && $this->_lastCmd->fromAndSize[1] > 0) {
$sql .= ' top ' . $this->_lastCmd->fromAndSize[1] . ' ';
if ($this->_lastCmd->fromAndSize[0] !== 0) {
if (is_array($this->_lastCmd->pkey) && sizeof($this->_lastCmd->pkey) > 1) {
throw new \ErrorException("multi-pkey not support in mssql for limit");
}
if (is_array($this->_lastCmd->pkey)) {
$pkey = key($this->_lastCmd->pkey);
if (is_int($pkey)) {
$pkey = current($this->_lastCmd->pkey);
}
} else {
if (empty($this->_lastCmd->pkey)) {
$pkey = 'Id';
} else {
if (is_string($this->_lastCmd->pkey)) {
$pkey = $this->_lastCmd->pkey;
} else {
throw new \ErrorException("invalid pkey in mssql found for limit");
}
}
}
$limit = "{$pkey} NOT IN (SELECT TOP {$this->_lastCmd->fromAndSize[0]} {$pkey} FROM {$this->_lastCmd->tablenamefull} __WHERE__";
if (!empty($orderby)) {
$limit .= ' order by ' . implode(',', $orderby);
}
$limit .= ")";
//throw new \ErrorException('todo: 获取并缓存主键');//SELECT TOP 10 * FROM sql WHERE ( code NOT IN (SELECT TOP 20 code FROM TestTable ORDER BY id))
}
}
$sql .= $this->_fmtField($this->_lastCmd->field) . ' from ' . $this->_lastCmd->tablenamefull;
break;
case 'addlog':
case 'insert':
$sql = 'insert into ' . $this->_lastCmd->tablenamefull;
$sql .= " (" . implode(',', array_keys($this->_lastCmd->field)) . ") ";
$sql .= "values (";
foreach ($this->_lastCmd->field as $k => $v) {
$sql .= $this->_safe($k, $v) . ',';
}
$sql = substr($sql, 0, -1) . ")";
break;
case 'update':
//update FE_temp.dbo.tb_user set tb_user.timeLastBought = tb_bought.lastBought
//// from FE_temp.dbo.tb_user left join FE_temp.dbo.tb_bought on tb_bought.userIdentifier=tb_user.userIdentifier
$sql = 'update ' . $this->_lastCmd->tablenamefull . ' set ' . $this->_fmtField($this->_lastCmd->field);
break;
case 'delete':
$sql = 'delete from ' . $this->_lastCmd->tablenamefull;
break;
default:
throw new \ErrorException('unsupport sql cmd:' . $this->_lastCmd->dowhat);
}
if (!empty($limit)) {
if (!empty($this->_lastCmd->where)) {
$where = substr(trim($this->_lastCmd->where), 5);
$limit = str_replace('__WHERE__', ' where ' . $where, $limit);
$sql .= ' where (' . $where . ') and (' . $limit . ')';
} else {
$sql .= ' where ' . ($limit = str_replace('__WHERE__', '', $limit));
}
} elseif (!empty($this->_lastCmd->where)) {
$sql .= ' ' . $this->_lastCmd->where;
}
if (!empty($this->_lastCmd->orderby)) {
if (!empty($groupby)) {
$sort_group .= ' group by ' . implode(',', $groupby);
}
if (!empty($orderby)) {
$sort_group .= ' order by ' . implode(',', $orderby);
}
$sql .= ' ' . $sort_group;
}
$this->_lastCmd->resetForNext();
$this->_lastCmd->strTrace = '[' . $this->_lastCmd->server . ']' . $sql;
} else {
if (is_string($sql)) {
$this->_lastCmd->resetForNext();
$this->_lastCmd->strTrace = '[' . $this->_lastCmd->server . ']' . $sql;
} else {
$err = new \ErrorException('sql gived is not a string');
error_log($err->getMessage() . "\n" . $err->getTraceAsString());
throw $err;
}
}
sooh_broker::pushCmd($this->_lastCmd);
$skip = sooh_dbErr::$maskSkipTheseError;
sooh_dbErr::$maskSkipTheseError = array();
//throw new \ErrorException($sql);
$rs = sqlsrv_query($this->_connection, $sql);
$this->_chkErr($skip);
return $rs;
}
示例15: shutdown
public static function shutdown()
{
$isError = false;
if ($error = error_get_last()) {
switch ($error['type']) {
case E_ERROR:
// 1
// 1
case E_CORE_ERROR:
// 16
// 16
case E_COMPILE_ERROR:
// 64
// 64
case E_USER_ERROR:
//256
//256
case E_PARSE:
//4
$isError = true;
break;
case E_WARNING:
//2
//2
case E_NOTICE:
//8
//8
case E_CORE_WARNING:
//32
//32
case E_COMPILE_WARNING:
//128
//128
case E_USER_WARNING:
//512
//512
case E_USER_NOTICE:
//1024
//1024
case E_STRICT:
//2048
break;
}
}
if ($isError) {
http_response_code(500);
$guid = false;
try {
$e = new ErrorException($error['message'], 0, 1, $error['file'], $error['line']);
//$guid = Dfi_Error_Report::saveException($e);
} catch (Exception $e) {
$guid = false;
}
if (!preg_match('/cli/', php_sapi_name())) {
Zend_Registry::get('shutdownLogger')->log($error['message'] . ' : ' . $error['file'] . ' : (' . $error['line'] . ')', Zend_Log::CRIT);
if (!Dfi_App_Config::get('main.showDebug')) {
$url = "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s://" : "://") . $_SERVER['HTTP_HOST'] . '/';
header("Location: " . $url . "error/error" . ($guid ? '/guid/' . $guid : ''));
exit;
} else {
ob_clean();
echo '<pre>REPORT: ' . ($guid ? $guid : 'brak') . "\n";
echo 'REQUEST: ' . (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '') . "\n";
echo 'REFERER: ' . (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '') . "\n";
echo 'ERROR: ' . $e->getMessage() . ' : ' . $e->getFile() . ' : (' . $e->getLine() . ')' . "\n" . $e->getTraceAsString() . '</pre>';
}
}
}
}