我想捕获一个特定的异常并正确处理它。但是,我之前没有这样做,我想以最好的方式做到这一点。
创建一个类似
的单独类是否正确 class HandleException extends Exception
{
//my code to handle exceptions;
}
并且在其中有不同的方法处理不同的异常情况?据我所知,Exception类就像一个"集成"在PHP中的类,所以可以扩展,如果捕获到异常,则不必终止程序流程?
并且,捕获异常时将创建此类的实例? STH。像
catch ( \Exception $e ) {
$error = new HandleException;
}
答案 0 :(得分:3)
来自手册
可以使用多个catch块来捕获不同类别 例外。正常执行(当没有异常被抛出时) try block)将在定义的最后一个catch块之后继续 序列。可以在catch中抛出(或重新抛出)异常 块。
所以你可以这样做:
try {
// some code
} catch ( HandleException $e ) {
// handle sthis error
} catch ( \Exception $e ) {
// handle that error
}
这将处理不同的例外情况。您还可以将finally
关键字与较新版本的PHP一起使用。
答案 1 :(得分:2)
您 CAN 使用您自己的扩展基本Exception对象,以提供您自己的异常类型,例如
.vcxproj
如果发现异常,则程序不一定必须中止。这取决于异常处理程序本身。但是,如果异常气泡总是返回到调用堆栈的顶部并且未捕获到IS,则整个脚本将因未处理的异常错误而中止。