61 lines
1.4 KiB
PHP
61 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Shaarli\Updater\Exception;
|
||
|
|
||
|
use Exception;
|
||
|
|
||
|
/**
|
||
|
* Class UpdaterException.
|
||
|
*/
|
||
|
class UpdaterException extends Exception
|
||
|
{
|
||
|
/**
|
||
|
* @var string Method where the error occurred.
|
||
|
*/
|
||
|
protected $method;
|
||
|
|
||
|
/**
|
||
|
* @var Exception The parent exception.
|
||
|
*/
|
||
|
protected $previous;
|
||
|
|
||
|
/**
|
||
|
* Constructor.
|
||
|
*
|
||
|
* @param string $message Force the error message if set.
|
||
|
* @param string $method Method where the error occurred.
|
||
|
* @param Exception|bool $previous Parent exception.
|
||
|
*/
|
||
|
public function __construct($message = '', $method = '', $previous = false)
|
||
|
{
|
||
|
$this->method = $method;
|
||
|
$this->previous = $previous;
|
||
|
$this->message = $this->buildMessage($message);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Build the exception error message.
|
||
|
*
|
||
|
* @param string $message Optional given error message.
|
||
|
*
|
||
|
* @return string The built error message.
|
||
|
*/
|
||
|
private function buildMessage($message)
|
||
|
{
|
||
|
$out = '';
|
||
|
if (!empty($message)) {
|
||
|
$out .= $message . PHP_EOL;
|
||
|
}
|
||
|
|
||
|
if (!empty($this->method)) {
|
||
|
$out .= t('An error occurred while running the update ') . $this->method . PHP_EOL;
|
||
|
}
|
||
|
|
||
|
if (!empty($this->previous)) {
|
||
|
$out .= ' ' . $this->previous->getMessage();
|
||
|
}
|
||
|
|
||
|
return $out;
|
||
|
}
|
||
|
}
|