2016-08-20 1 views
1

ich Strom hat eine Klasse aufgenommen, die diese Methode gilt:Exception wird weder in Fang

public function getUser(
) { 
    if (!empty($this->UserName)){ 
     return $this->UserName; 
    } else { 
     throw new Exception('Empty UserName'); 
    } 
} 

Als ich dann diese Methode ausgeführt, wenn der Benutzername nicht gesetzt ist, wird der Fang nicht geworfen Abholung Ausnahme, die Seite stirbt einfach still.

try { 
    $example = $obj->getUser(); 
} catch (Exception $ex) { 
    die($ex->getMessage()); 
} 

Vorschläge? - Ich habe documentation gelesen und nichts gefunden.

+0

Haben Sie versucht, die 'if (! Empty ($ this-> Username))' 'mit try/catch' Verpackung? – Script47

+0

Noch lautlos gestorben, nachdem dies getan @ Script47 – KDOT

+0

Dann ist 'UserName' nicht wirklich leer – RiggsFolly

Antwort

1

Das scheint zu funktionieren, ich musste neu erstellen, was ich für Ihre Klasse halten würde.

<?php 

class User { 
    public $UserName = ''; 

    public function getUser() { 
     if (empty($this->UserName)) 
      throw new Exception('UserName is empty!'); 

     return $this->UserName; 
    } 
} 

try { 
    $user = (new User())->getUser(); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

?> 

Ausgabe

Ich kann nur annehmen, dass Ihre Variable nicht wirklich leer ist.

Hinweis

In PHP ein String mit einem Leerzeichen in es NICHT ist als leer eingestuft,

var_dump(empty(' ')); // false 

Es sei denn, Sie trim,

var_dump(empty(trim(' '))); // true 

Fehler Berichterstattung

Wenn es nicht bereits getan wird, ermöglichen error_reporting,

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
+0

Einen langsamen Tag habend - L_- Markiere Antwort, sobald ich kann x) – KDOT

+0

@KyleThomas kein Problem. – Script47