PHP : Error: parámetros incorrectos de Excepción con arrojados de la Matriz de Excepción

Estoy tirando de la excepción en el uso de la matriz así:

$response = array('login_email' => '<div class="warning">Your email and /or password were incorrect</div>');

throw new \Exception($response);

y lo que me estoy poniendo es:

Error: Wrong parameters for Exception([string $exception [, long $code [, Exception $previous = NULL]]])

Alguna idea?

InformationsquelleAutor Spencer Mark | 2012-08-31

3 Kommentare

  1. 13

    Excepción() no tome una matriz. Usted necesita darle una cadena.

    $response = 'Your email and /or password were incorrect.';
    
    throw new \Exception($response);

    Leer el error:

    Excepción([cadena $excepción [, largo $código [, Excepción
    $anterior = NULL]]])

    • Que es lo que yo pensaba, aunque estoy bastante seguro de que en el pasado he conseguido pasar de la matriz como argumento – gracias de todos modos.
    • Si quiere especificar el tipo de Excepción, usted puede pasar un código. new Exception($respuesta,2);
    • También hay varios tipos de excepción predefinidos en SPL, si alguno de los que son aplicables.
    • Pero todos ellos extienden la principal Excepción – y heredar los argumentos enviados al constructor – ¿no es cierto?
    • Como consejo adicional, en caso de que usted está usando una constante como segundo parámetro, asegúrese de que está realmente definido…
  2. 1

    Si quieres lanzar una excepción con un array como parámetro, se puede json_encode su matriz, por lo que se convierte en una cadena.

    $response = array('login_email' => 'sometext', 'last_query' => 'sometext');
    throw new \Exception(json_encode($response));

    Echar un vistazo también en el segundo parámetro de json_encode: usted puede agregar JSON_PRETTY_PRINT tener que error de la sangría (es más legible, pero se necesita más espacio), o puede utilizar una herramienta como JSON Visor para Notepad++ para dar formato a su cadena json cuando se mira en él.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea