xref: /plugin/struct/meta/StructException.php (revision 5511bd5b07a4ce4f72c790c57a0579633941affd)
1<?php
2
3namespace plugin\struct\meta;
4
5use Exception;
6
7/**
8 * Class StructException
9 *
10 * A translatable exception
11 *
12 * @package plugin\struct\meta
13 */
14class StructException extends \RuntimeException {
15
16    /**
17     * StructException constructor.
18     *
19     * @param string $message
20     * @param ...string $vars
21     */
22    public function __construct($message) {
23        /** @var \action_plugin_struct_autoloader $plugin */
24        $plugin = plugin_load('action', 'struct_autoloader');
25        $trans = $plugin->getLang('Exception ' . $message);
26        if(!$trans) $trans = $message;
27
28        $args = func_get_args();
29        array_shift($args);
30
31        $trans = vsprintf($trans, $args);
32
33        parent::__construct($trans, -1, null);
34    }
35}
36