Gestione eccezioni con passaggio stringa

zampi91

Nuovo Utente
9 Dic 2009
4
0
0
Salve a tutti, io nel mio script in php ho fatto un array che si salva tutti gli errori che riscontra nell'analizzare i campi del form. Siccome ho usato le classi, genero una eccezione, però vorrei passare, invece del solito testo, il mio array. io ho fatto così:

L'estensione delle eccezioni:
PHP:
class myCustomException extends Exception{
        Public Function __construct($Errori){
            parent::__construct($Errori);
        }
        Public Function __toString(){
            Return $this->$Errori;
        }
}

Poi genero l'eccezione in questo modo:
PHP:
throw new myCustomException($Error);        //Ritorno array con errori
$Error è l'array che io vorrei passare

Quando eseguoi il codice però mi si genera questo errore: Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in /home/web/www.schooldesk.it/www/modules/reg/control.php on line 4

Qualcuno sa come risolvere?? grazie a tutti

Dimenticavo, Io ho seguito la guida al seguente indirizzo: http://www.php.net/manual/en/langua...s.extending.php
 
non credo tu possa passare un solo parametro al costruttore:
PHP:
Public Function __construct($Errori){
            parent::__construct($Errori);
non so se ho capito bene la logica della classe ma come secondo parametro dovresti passare l'exception code.
 
scusa ho sbagliato...

ho scritto questo:
PHP:
class MyException extends Exception
{
    public $Errors;
    public function __construct($Errors, $message = null, $code = 0, Exception $previous = null) {
        $this->Errors = $Errors;
        parent::__construct($message, $code, $previous);
    }
}

Dal tipo di errore che mi compare sembra sia derivato dal code

la riga 6 è questa
PHP:
parent::__construct($message, $code, $previous);
 
Sono riuscito a risolvere

ho corretto in questo modo:
PHP:
class MyException extends Exception {
    public $Errors;
    public function __construct($Errors, $message = null, $code = 0) {
        $this->Errors = $Errors;
        parent::__construct($message, $code);
    }
}
 
quindi il problema non stava nel fatto che mancava un argomento, ma nel fatto che ce n'era uno in più:)
 

Discussioni simili