所以我已经阅读了 php.net 上的所有示例。他们的任何一个例子都没有真正让我印象深刻。我知道异常用于什么,只是不知道如何在我的代码中正确使用 throw、try 和 catch。另外,我想知道这是否仅用于OOP?或者只是任何 PHP 代码?我不知道如何处理“抛出新异常”。我所知道的是代码进入 try 块,如果发生任何错误,catch 应该处理错误。请帮忙!
问问题
780 次
2 回答
1
使用伪代码,因为这不仅仅在 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);
}
}
希望这是有道理的。
于 2013-01-08T02:58:18.380 回答
0
当您因为出现问题而想要停止执行时,请抛出错误(而不是 die() 或继续执行但结果不可预测)。
即使抛出的异常没有被 try catch 块捕获,仍然可以获得堆栈跟踪、行号和文件路径以方便调试。
异常是 PHP 中最好的错误处理机制。它们将帮助您查找并抛出错误以简化调试。
于 2013-01-08T02:48:36.370 回答