2016-08-20 8 views
1

I現在、このメソッドを保持するクラスを持っている:ユーザー名が設定されていないとき、私は、このメソッドを実行すると例外をキャッチしてピックアップされていない

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

、キャッチ投げを拾っていません例外は、ページはちょうど黙って死ぬ。

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

提案はありますか? - 私はdocumentationを読んで何も見つけられませんでした。

+0

あなたがラップしようとしたことがあり、 '(もし!空(の$ this - >ユーザー名))' 'してみてください/ catch'と? – Script47

+0

@ Script47 – KDOT

+0

を実行した後でも静かに死んでしまった場合は、 'UserName'は実際には空ではありません – RiggsFolly

答えて

1

これはうまくいくようですが、私は自分のクラスと思われるものを作り直さなければなりませんでした。

<?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(); 
} 

?> 

出力

私はあなたの変数が実際には空でないと仮定することができます。を報告

お知らせ

PHPで、その中にスペースを持つ文字列が空に分類ませで、

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

あなたtrimない限り、

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

エラー

それはまだ行っていない場合は、error_reportingを有効にするには、

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

遅い日を持つ--L_-私はxできるだけ早く答えをマークします) – KDOT

+0

@KyleThomas問題はありません。 – Script47

関連する問題