处理php中的特定异常

时间:2016-08-23 14:11:41

标签: php exception

我想捕获一个特定的异常并正确处理它。但是,我之前没有这样做,我想以最好的方式做到这一点。

创建一个类似

的单独类是否正确
 class HandleException extends Exception
{
   //my code to handle exceptions;
}

并且在其中有不同的方法处理不同的异常情况?据我所知,Exception类就像一个"集成"在PHP中的类,所以可以扩展,如果捕获到异常,则不必终止程序流程?

并且,捕获异常时将创建此类的实例? STH。像

     catch ( \Exception $e ) {
        $error = new HandleException;
    }

2 个答案:

答案 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,则整个脚本将因未处理的异常错误而中止。