PHPでの例外処理について質問があります。
同じ意味の例外がたくさんあります。何かが見つかりませんでした。これらの例外はすべて、(クラスではなく)インターフェースを実装しますNotFoundException
。だから私の質問に:例外がcatch-blockでインターフェースを実装しているかどうかをチェックすることは可能です。NotFoundExceptionインターフェイスをクラスに変更できることはわかっていますが、一部の例外はすでに他の例外を拡張しています。(例:CategoryNotFoundException
拡張CategoryException
および実装NotFoundException
)。
なぜこのインターフェースが必要なのですか?ページが表示されていて、インターフェイスを実装する例外がスローされると、Error404が表示されます。例:
$userPage = $_GET["page"];
try{
showPage($userPage);
} catch (){ //How to catch the `NotFoundException` interface?
showPage("Error404");
} catch (Exception $e){
showPage("Error500"); //Something is wrong...
}