/usr/share/php/Horde/Exception/Pear.php is in php-horde-exception 2.0.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <?php
/**
* Horde exception class that converts PEAR errors to exceptions.
*
* Copyright 2008-2013 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @package Exception
*/
class Horde_Exception_Pear extends Horde_Exception
{
/**
* The class name for generated exceptions.
*
* @var string
*/
static protected $_class = __CLASS__;
/**
* Exception constructor.
*
* @param PEAR_Error $error The PEAR error.
*/
public function __construct(PEAR_Error $error)
{
parent::__construct($error->getMessage(), $error->getCode());
$this->details = $this->_getPearTrace($error);
}
/**
* Return a trace for the PEAR error.
*
* @param PEAR_Error $error The PEAR error.
*
* @return string The backtrace as a string.
*/
private function _getPearTrace(PEAR_Error $error)
{
$pear_error = '';
$backtrace = $error->getBacktrace();
if (!empty($backtrace)) {
$pear_error .= 'PEAR backtrace:' . "\n\n";
foreach ($backtrace as $frame) {
$pear_error .=
(isset($frame['class']) ? $frame['class'] : '')
. (isset($frame['type']) ? $frame['type'] : '')
. (isset($frame['function']) ? $frame['function'] : 'unkown') . ' '
. (isset($frame['file']) ? $frame['file'] : 'unkown') . ':'
. (isset($frame['line']) ? $frame['line'] : 'unkown') . "\n";
}
}
$userinfo = $error->getUserInfo();
if (!empty($userinfo)) {
$pear_error .= "\n" . 'PEAR user info:' . "\n\n";
if (is_string($userinfo)) {
$pear_error .= $userinfo;
} else {
$pear_error .= print_r($userinfo, true);
}
}
return $pear_error;
}
/**
* Exception handling.
*
* @param mixed $result The result to be checked for a PEAR_Error.
*
* @return mixed Returns the original result if it was no PEAR_Error.
*
* @throws Horde_Exception_Pear In case the result was a PEAR_Error.
*/
static public function catchError($result)
{
if ($result instanceOf PEAR_Error) {
throw new self::$_class($result);
}
return $result;
}
}
|