private function init()
    {
        $this->microtime_start = microtime(true);
        $this->nb_os = CNabuOS::getOS();

        try {
            $this->registerHandlers();
            $this->registerProviderFactory();
        } catch (ENabuException $nb_exception) {
            if ($this->isCLIEnvironment()) {
                throw $nb_exception;
            } else {
                nb_displayErrorPage(500, $nb_exception);
                die;
            }
        }
    }