function PEAR_Exception::getCauseMessage
Function must be public to call on caused exceptions
Parameters
array $causes Array that gets filled.:
Return value
void
2 calls to PEAR_Exception::getCauseMessage()
- PEAR_Exception::toHtml in vendor/
pear/ pear_exception/ PEAR/ Exception.php - Generates a HTML representation of the exception
- PEAR_Exception::toText in vendor/
pear/ pear_exception/ PEAR/ Exception.php - Generates text representation of the exception and stack trace
File
-
vendor/
pear/ pear_exception/ PEAR/ Exception.php, line 257
Class
- PEAR_Exception
- Base PEAR_Exception Class
Code
public function getCauseMessage(&$causes) {
$trace = $this->getTraceSafe();
$cause = array(
'class' => get_class($this),
'message' => $this->message,
'file' => 'unknown',
'line' => 'unknown',
);
if (isset($trace[0])) {
if (isset($trace[0]['file'])) {
$cause['file'] = $trace[0]['file'];
$cause['line'] = $trace[0]['line'];
}
}
$causes[] = $cause;
if ($this->cause instanceof PEAR_Exception) {
$this->cause
->getCauseMessage($causes);
}
elseif ($this->cause instanceof Exception) {
$causes[] = array(
'class' => get_class($this->cause),
'message' => $this->cause
->getMessage(),
'file' => $this->cause
->getFile(),
'line' => $this->cause
->getLine(),
);
}
elseif (class_exists('PEAR_Error') && $this->cause instanceof PEAR_Error) {
$causes[] = array(
'class' => get_class($this->cause),
'message' => $this->cause
->getMessage(),
'file' => 'unknown',
'line' => 'unknown',
);
}
elseif (is_array($this->cause)) {
foreach ($this->cause as $cause) {
if ($cause instanceof PEAR_Exception) {
$cause->getCauseMessage($causes);
}
elseif ($cause instanceof Exception) {
$causes[] = array(
'class' => get_class($cause),
'message' => $cause->getMessage(),
'file' => $cause->getFile(),
'line' => $cause->getLine(),
);
}
elseif (class_exists('PEAR_Error') && $cause instanceof PEAR_Error) {
$causes[] = array(
'class' => get_class($cause),
'message' => $cause->getMessage(),
'file' => 'unknown',
'line' => 'unknown',
);
}
elseif (is_array($cause) && isset($cause['message'])) {
// PEAR_ErrorStack warning
$causes[] = array(
'class' => $cause['package'],
'message' => $cause['message'],
'file' => isset($cause['context']['file']) ? $cause['context']['file'] : 'unknown',
'line' => isset($cause['context']['line']) ? $cause['context']['line'] : 'unknown',
);
}
}
}
}