📅  最后修改于: 2020-09-30 03:17:50             🧑  作者: Mango
异常处理是PHP的强大机制,用于处理运行时错误(运行时错误称为异常)。这样可以保持应用程序的正常运行。
使用异常处理的主要目的是维护应用程序的正常执行。
异常是程序的异常结果,可以由程序本身处理。基本上,异常会破坏程序的正常流程。但这与错误不同,因为可以处理异常,而程序本身无法处理错误。
换句话说,“程序的意外结果是一个异常,可以由程序本身来处理。”可以在PHP中引发并捕获异常。
PHP提供了强大的机制,异常处理。它允许您处理运行时错误,例如IOException,SQLException,ClassNotFoundException等。异常处理的最流行示例是-除以零异常,这是算术异常。
注意:当异常中断程序或应用程序的正常执行时,需要进行异常处理。
在所有编程语言中,异常处理几乎都是相似的。当发生指定的错误情况时,它将更改程序的正常流程,该情况称为异常。为此,PHP提供了以下关键字:
Try-
try块包含可能具有异常或可能发生异常的代码。当在代码运行期间try块内发生异常时,将在catch块中捕获并解决该异常。try块之后必须是catch或finally块。一个try块后面可以接一个最少的和最大数量的catch块。
Catch-
catch块包含引发指定异常时执行的代码。它总是与try块一起使用,而不是单独使用。当发生异常时,PHP查找匹配的catch块。
Throw-
它是用于引发异常的关键字。它还有助于列出函数引发但无法处理的所有异常。
请记住,每次掷球必须至少有一个“接球”。
Finally-
finally块包含一个代码,该代码用于PHP中的清理活动。基本上,它执行程序的基本代码。
异常处理是PHP中的重要机制,与错误处理相比,它具有以下优点-
错误类型分组-
在PHP中,基本和对象都可以作为异常抛出。它可以在类中创建异常对象和组异常的层次结构,还可以根据它们的类型对其进行分类。
将错误处理与常规代码分开-
在传统的错误处理中,if-else块用于处理错误。因为处理错误和条件的代码混合在一起,所以它使代码不可读。在try-catch块中,异常与代码保持独立,并且代码变得可读。
借助示例学习如何在PHP-中进行异常处理
例子1
让我们以一个示例来说明throw和try-catch块的常见流程:
=1) {
//throw an exception
throw new Exception("Value must be less than 1");
}
return true;
}
//trigger an exception in a "try" block
try {
checkNumber(5);
//If the exception throws, below text will not be display
echo 'If you see this text, the passed value is less than 1';
}
//catch exception
catch (Exception $e) {
echo 'Exception Message: ' .$e->getMessage();
}
?>
输出:
Exception Message: Value must be less than 1
示例2:创建自定义异常
您可以通过扩展Exception类来创建用户定义的异常。查看下面的代码,以了解如何创建用户定义的异常-
";
}
}
catch (DivideByZeroException $dze) {
echo "Divide by Zero Exception! ";
}
catch (DivideByNegativeNoException $dnne) {
echo "Divide by Negative Number Exception ";
}
catch (Exception $ex) {
echo "Unknown Exception";
}
}
checkdivisor(18, 3);
checkdivisor(34, -6);
checkdivisor(27, 0);
?>
输出:
Result of division = 6
Divide by Zero Exception!
Divide by Negative Number Exception!
要详细了解有关try-catch块的更多信息,请单击此处。