Modules

HTTP_Exception_400
extends Kohana_HTTP_Exception_400
extends HTTP_Exception
extends Kohana_HTTP_Exception
extends Kohana_Exception
extends Kohana_Kohana_Exception
extends Exception

Kohana exception class. Translates exceptions using the I18n class.

package
Kohana
category
Exceptions
author
Kohana Team
copyright
© 2008-2012 Kohana Team
license
http://kohanaframework.org/license

Class declared in SYSPATH/classes/http/exception/400.php on line 3.

Properties

public static string $error_view

error rendering view

string(12) "kohana/error"

public static array $php_errors

PHP error code => human readable name

array(8) (
    1 => string(11) "Fatal Error"
    256 => string(10) "User Error"
    4 => string(11) "Parse Error"
    2 => string(7) "Warning"
    512 => string(12) "User Warning"
    2048 => string(6) "Strict"
    8 => string(6) "Notice"
    4096 => string(17) "Recoverable Error"
)

protected integer $_code

HTTP 400 Bad Request

protected $code

protected $file

protected $line

protected $message

Methods

public __construct( [ string $message = NULL , array $variables = NULL , integer $code = integer 0 ] ) (defined in Kohana_HTTP_Exception)

Creates a new translated exception.

throw new Kohana_Exception('Something went terrible wrong, :user',
    array(':user' => $user));

Parameters

  • string $message = NULL - Status message, custom content to display with error
  • array $variables = NULL - Translation variables
  • integer $code = integer 0 - The http status code

Return Values

  • void

Source Code

public function __construct($message = NULL, array $variables = NULL, $code = 0)
{
    if ($code == 0)
    {
        $code = $this->_code;
    }
 
    if ( ! isset(Response::$messages[$code]))
        throw new Kohana_Exception('Unrecognized HTTP status code: :code . Only valid HTTP status codes are acceptable, see RFC 2616.', array(':code' => $code));
 
    parent::__construct($message, $variables, $code);
}

public __toString( ) (defined in Kohana_Kohana_Exception)

Magic object-to-string method.

echo $exception;

Tags

Return Values

  • string

Source Code

public function __toString()
{
    return Kohana_Exception::text($this);
}

public static handler( Exception $e ) (defined in Kohana_Kohana_Exception)

Inline exception handler, displays the error message, source of the exception, and the stack trace of the error.

Parameters

  • Exception $e required - $e

Tags

Return Values

  • boolean

Source Code

public static function handler(Exception $e)
{
    try
    {
        // Get the exception information
        $type    = get_class($e);
        $code    = $e->getCode();
        $message = $e->getMessage();
        $file    = $e->getFile();
        $line    = $e->getLine();
 
        // Get the exception backtrace
        $trace = $e->getTrace();
 
        if ($e instanceof ErrorException)
        {
            if (isset(Kohana_Exception::$php_errors[$code]))
            {
                // Use the human-readable error name
                $code = Kohana_Exception::$php_errors[$code];
            }
 
            if (version_compare(PHP_VERSION, '5.3', '<'))
            {
                // Workaround for a bug in ErrorException::getTrace() that
                // exists in all PHP 5.2 versions.
                // @link http://bugs.php.net/45895
                for ($i = count($trace) - 1; $i > 0; --$i)
                {
                    if (isset($trace[$i - 1]['args']))
                    {
                        // Re-position the args
                        $trace[$i]['args'] = $trace[$i - 1]['args'];
 
                        // Remove the args
                        unset($trace[$i - 1]['args']);
                    }
                }
            }
        }
 
        // Create a text version of the exception
        $error = Kohana_Exception::text($e);
 
        if (is_object(Kohana::$log))
        {
            // Add this exception to the log
            Kohana::$log->add(Log::ERROR, $error);
 
            // Make sure the logs are written
            Kohana::$log->write();
        }
 
        if (Kohana::$is_cli)
        {
            // Just display the text of the exception
            echo "\n{$error}\n";
 
            exit(1);
        }
 
        if ( ! headers_sent())
        {
            // Make sure the proper http header is sent
            $http_header_status = ($e instanceof HTTP_Exception) ? $code : 500;
 
            header('Content-Type: text/html; charset='.Kohana::$charset, TRUE, $http_header_status);
        }
 
        if (Request::$current !== NULL AND Request::current()->is_ajax() === TRUE)
        {
            // Just display the text of the exception
            echo "\n{$error}\n";
 
            exit(1);
        }
 
        // Start an output buffer
        ob_start();
 
        // Include the exception HTML
        if ($view_file = Kohana::find_file('views', Kohana_Exception::$error_view))
        {
            include $view_file;
        }
        else
        {
            throw new Kohana_Exception('Error view file does not exist: views/:file', array(
                ':file' => Kohana_Exception::$error_view,
            ));
        }
 
        // Display the contents of the output buffer
        echo ob_get_clean();
 
        exit(1);
    }
    catch (Exception $e)
    {
        // Clean the output buffer if one exists
        ob_get_level() and ob_clean();
 
        // Display the exception text
        echo Kohana_Exception::text($e), "\n";
 
        // Exit with an error status
        exit(1);
    }
}

public static text( Exception $e ) (defined in Kohana_Kohana_Exception)

Get a single line of text representing the exception:

Error [ Code ]: Message ~ File [ Line ]

Parameters

  • Exception $e required - $e

Return Values

  • string

Source Code

public static function text(Exception $e)
{
    return sprintf('%s [ %s ]: %s ~ %s [ %d ]',
        get_class($e), $e->getCode(), strip_tags($e->getMessage()), Debug::path($e->getFile()), $e->getLine());
}

public __wakeup( ) (defined in Exception)

final public getCode( ) (defined in Exception)

final public getFile( ) (defined in Exception)

final public getLine( ) (defined in Exception)

final public getMessage( ) (defined in Exception)

final public getPrevious( ) (defined in Exception)

final public getTrace( ) (defined in Exception)

final public getTraceAsString( ) (defined in Exception)

final private __clone( ) (defined in Exception)