Конечно.Это будет только ваш код обработки ошибок, чтобы знать и использовать свойство массива соответствующим образом.Вы можете определить конструктор вашего пользовательского класса исключений так, чтобы он принимал любые параметры, которые вам нужны, а затем просто обязательно вызовите конструктор базового класса из определения конструктора, например:
class CustomException extends \Exception
{
private $_options;
public function __construct($message,
$code = 0,
Exception $previous = null,
$options = array('params'))
{
parent::__construct($message, $code, $previous);
$this->_options = $options;
}
public function GetOptions() { return $this->_options; }
}
Затем, в вашем вызывающем коде...
try
{
// some code that throws new CustomException($msg, $code, $previousException, $optionsArray)
}
catch (CustomException $ex)
{
$options = $ex->GetOptions();
// do something with $options[]...
}
Ознакомьтесь с документами php для расширения класса исключений:
http://php.net/manual/en/language.exceptions.extending.php