2016-09-01 10 views
2

PHPUnitテストで例外をキャッチしようとしましたが、期待通りに機能しません。例外はより高いレベルで捕らえられているように見えますが、私はその理由を理解していません。PHPUnit try catchがテストケースで動作しない

public function testException() 
    { 
     echo 'Enter'; 
     try { 
      throw new Exception('error.'); 
     } catch (Exception $e) { 
      echo 'catch Exception'; 
     } 
     echo 'End'; 
    } 

出力では、「Enter」だけが表示されます。私は「終わり」には達しません。 (私が使用していますPHP7)

おかげ

編集:

+2

'Exception'を' \ Exception'に置き換えてみてください。 – Matteo

+0

あなたのテストで実際に使用している例外を見るには、あなたの 'import'ステートメントもリストするべきです。 – BVengerov

答えて

3

処理の例外は、彼らがException :-)

と呼ばれている場合は特に、注意が必要です\Exceptionを持つすべてのExceptionは私の問題を解決し交換 すべてのフィードバックを見るだけでthis (almost the same) questionが生成されています。

ここで、予想されるクラスと一致しない場合にのみ、例外がキャッチされません。この場合は、正確にはExceptionというクラス名の指定が正確でないため、確かにそれらは\Exceptionと指定することで修正されます。同様にスマートに言及した質問スレッドからコメンターで入れ

バックスラッシュ例外なしには、名前空間に特有のものであり、一致(またはキャッチ)されることはありません。

+0

ありがとう!できます! – Starli0n

関連する問題