< API16:JError

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

<! removed transcluded page call, red link never existed >


static throwError(&$exception)
Parameter Name Default Value Description

Defined in



jimport( 'joomla.error.error' );

Source Body

public static function throwError(&$exception)
        static $thrown = false;

        // If thrown is hit again, we've come back to JError in the middle of throwing another JError, so die!
        if ($thrown)
                //echo debug_print_backtrace();
                jexit('Infinite loop detected in JError');

        $thrown = true;
        $level = $exception->get('level');

        // see what to do with this kind of error
        $handler = JError::getErrorHandling($level);

        $function = 'handle'.ucfirst($handler['mode']);
        if (is_callable(array('JError', $function))) {
                $reference = &call_user_func_array(array('JError',$function), array(&$exception, (isset($handler['options'])) ? $handler['options'] : array()));
        else {
                // This is required to prevent a very unhelpful white-screen-of-death
                        'JError::raise -> Static method JError::' . $function . ' does not exist.' .
                        ' Contact a developer to debug' .
                        '<br /><strong>Error was</strong> ' .
                        '<br />' . $exception->getMessage()
        //we don't need to store the error, since JException already does that for us!
        //remove loop check
        $thrown = false;
        return $reference;

<! removed transcluded page call, red link never existed >


Code Examples