JError/throwError
From Joomla! Documentation
< 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 >
Syntax[edit]
static throwError(&$exception)
Parameter Name | Default Value | Description |
---|---|---|
&$exception |
Defined in[edit]
libraries/joomla/error/error.php
Importing[edit]
jimport( 'joomla.error.error' );
Source Body[edit]
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
jexit(
'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 >
Examples[edit]
Code Examples[edit]