2016-04-29 9 views
2

Mein Problem ist, dass ich eine eigene Ausnahme in der Funktion der Klasse in PHP habe, die ich fangen kann, aber es stoppt die Seite überhaupt auf sehr interessante Weise. Wenn die Ausnahme abgefangen wird, wird die Seite nicht gerendert. Stattdessen gibt es mir nur die Ausnahme, was sich absolut von meinen Erwartungen unterscheidet. Ich habe diese Funktion, die Ausnahme auslöst, die ich in der Funktion der Kindklasse abfange, weil ich diese Klasse selbst nicht benutze, nur im ersten Kind.Ausgelöste Ausnahme, aber wie man es richtig in PHP fängt?

function auth($username, $password) { 
    if(!ssh2_auth_password($this->ssh, $username, $password)) { 
     throw new Exception('Invalid credentials'); 
     return false; 
    } 

    $fingerprint = ssh2_fingerprint($this->ssh, SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX); 

    if (!$fingerprint) { 
     throw new Exception('No fingerprint'); 
     return false; 
    } 

    return $fingerprint; 
    } 

die Ausnahme ausgelöst wird, ist "Invalid Credentials"

Kinder Klasse Funktion, wo diese Funktion

try { 
     $this->ssh->setupConnection($data['connectivity']['serverAdress'], $data['connectivity']['serverPort']); 
     $fingerprint = $this->ssh->auth($data['connectivity']['serverLogin'], $data['connectivity']['serverPassword']);   
    } catch (Exception $e) { 
     $this->errorAndLog("blah blah blah"); 
     return false; 
    } 

alles in der Kinderklasse richtig und so weiter

geerbt aufgerufen wird

Wie Sie sehen können, fange ich die exceptio n hier, aber Seite noch macht nicht und zeigt auf meine Ausnahme in var_dump-Stil:

string (18) "Invalid Credentials"

Ich bin nicht sicher, wenn ich nicht gerade tun herauszufinden, etwas über Ausnahmen oder der Code ist falsch an einem gewissen Punkt

UPD: Es tut mir leid, ging etwas schief. Klassen sind nicht Kind-Eltern. Die Klasse mit auth() Funktion wird mit

in "main" one enthalten
public function __construct() 
{ 
    $this->ssh = new SSH2(); 
} 
+0

'catch (Exception $ e) {throw new Exception ($ e-> getMessage()); } 'oder' catch (Exception $ e) {neue Exception werfen ('blah blah blah'); } '? –

+0

@Hendra Nucleo Was? –

Antwort

0

gelöst werden. Nur Code überarbeitet, um zu arbeiten, ohne Ausnahmen zu werfen.

Verwandte Themen