Mat*_*o12 6 php interface exception try-catch catch-block
我对PHP中的异常处理有疑问。
我有很多例外,它们的意思是相同的:找不到任何东西。所有这些异常都实现了接口(不是类)NotFoundException。所以我的问题是:可以检查异常是否在catch块处实现了接口。我知道我可以将NotFoundException-interface更改为类,但是某些异常已经扩展了另一个异常。(示例: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...
}
Run Code Online (Sandbox Code Playgroud)
只需指定您要捕获的异常类(或接口):
try {
showPage($userPage);
} catch (NotFoundException $e) {
showPage("Error404");
} catch (Exception $e) {
showPage("Error500");
}
Run Code Online (Sandbox Code Playgroud)