/** * Constructor accepts message string and any number of parameters, which will be used as string replacements for * message string (unless an instance of \Throwable is found, in which case it is passed to parent as previous). * * @param null|string $message * @param mixed ...$params */ public function __construct(string $message = null, ...$params) { parent::__construct($this->compileMessage($message ?: $this->defaultMessage(), $params), null, $this->compileThrown($params)); }