有哪些使用throw、try和catch处理异常的简单示例?我对这些都没有很好的理解


What are some simple examples of using throw, try, and catch for exceptions? I do not have a solid understanding of any of these

所以我已经阅读了php.net上的所有示例。他们的例子没有一个能打动我。我知道异常的用途,只是不知道如何在代码中正确使用throw、try和catch。另外,我想知道这是否只用于OOP?或者只是任何PHP代码?我不知道如何处理"抛出新的异常"。我所知道的是代码进入try块,如果发生错误,catch应该处理错误。请帮助!

使用伪代码,因为这不仅仅在PHP中有用。

有时方法会遇到它们不能(或不想)处理的问题。假设我们有一个sendExDrunkenText($ex)方法。这需要一个$ex参数,并将查找前女友并向他们发送一个漫无聊来的短信。

如果这个方法不能找到找到$ex提供的一个替代返回false或类似的是抛出某种异常:

if(! exExists($ex)){
    throw NoSuchExException("Cant't find supplied ex");
}
(在预编译语言中——例如java——你可以要求调用你的方法的方法处理或重新抛出你的异常。因此,imo异常在这些语言中更有用)。

现在,如果您正在使用上面的方法,您可能希望在抛出异常时采取一些操作。在这种情况下,您可以捕获异常并适当地处理它:

foreach($exList as $ex){
    try{
          sendExDrunkenText($ex);
    }catch(NoSuchExException $exception){
        removeFromAddressBook($ex);
    }
}

当您想要停止执行,因为某些地方出错时,抛出一个错误(而不是die()或继续执行,但结果不可预测)。

即使抛出的异常没有被try catch块捕获,仍然可以获得堆栈跟踪,行号和文件路径,以简化调试。

异常是PHP最好的错误处理机制。它们将帮助您发现并抛出错误,以简化调试。