我对 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...
}