diff --git a/classes/pluginhost.php b/classes/pluginhost.php index bcde125518b1a2fe2d685bb6312086c32d70dbbc..5df58e5d57d8f5bf66850f4bd232f9dcf466c384 100755 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -249,23 +249,29 @@ class PluginHost { $this->last_registered = $class; - switch ($kind) { - case $this::KIND_SYSTEM: - if ($this->is_system($plugin)) { - if (!$skip_init) $plugin->init($this); - $this->register_plugin($class, $plugin); - } - break; - case $this::KIND_USER: - if (!$this->is_system($plugin)) { - if (!$skip_init) $plugin->init($this); - $this->register_plugin($class, $plugin); - } - break; - case $this::KIND_ALL: - if (!$skip_init) $plugin->init($this); - $this->register_plugin($class, $plugin); - break; + try { + switch ($kind) { + case $this::KIND_SYSTEM: + if ($this->is_system($plugin)) { + if (!$skip_init) $plugin->init($this); + $this->register_plugin($class, $plugin); + } + break; + case $this::KIND_USER: + if (!$this->is_system($plugin)) { + if (!$skip_init) $plugin->init($this); + $this->register_plugin($class, $plugin); + } + break; + case $this::KIND_ALL: + if (!$skip_init) $plugin->init($this); + $this->register_plugin($class, $plugin); + break; + } + } catch (Exception $ex) { + user_error($ex, E_USER_WARNING); + } catch (Error $err) { + user_error($err, E_USER_WARNING); } } }