1. 抛出异常
在 PHP 中,我们可以使用 `throw` 关键字来抛出异常。下面的代码示例说明了如何抛出异常:
php
function divide($a, $b) {
if ($b == 0) {
throw new Exception("Division by zero is not allowed.");
}
return $a / $b;
}
try {
$result = divide(10, 0);
} catch (Exception $e) {
echo "Caught exception: ", $e->getMessage(), "\n";
}
2. 捕获异常
在 PHP 中,我们可以使用 `try...catch` 结构来捕获异常。下面的代码示例说明了如何捕获异常:
php
try {
$result = divide(10, 0);
} catch (Exception $e) {
echo "Caught exception: ", $e->getMessage(), "\n";
}
3. 自定义异常类
我们可以根据需要创建自己的异常类,并使用它来抛出更具体的异常。下面的代码示例说明了如何创建自定义异常类:
php
class CustomException extends Exception {
// Add custom constructor or methods here...
}
function divide($a, $b) {
if ($b == 0) {
throw new CustomException("Division by zero is not allowed.");
}
return $a / $b;
}
try {
$result = divide(10, 0);
} catch (CustomException $e) {
echo "Caught custom exception: ", $e->getMessage(), "\n";
}
4. 使用 finally 块
在 PHP 中,我们可以使用 `finally` 块来确保某些代码始终被执行,无论是否抛出异常。下面的代码示例说明了如何使用 `finally` 块:
php
try {
// Your code here...
} catch (Exception $e) {
// Handle exception...
} finally {
// Code to be executed regardless of exception...
}
5. 使用 throw 语句来转让异常
我们可以使用 `throw` 语句来将异常转给其他方法或函数。下面的代码示例说明了如何使用 `throw` 语句来转让异常:
php
function checkValue($value) {
if ($value === null) {
throw new Exception("Value cannot be null.");
}
return true;
}
function validateInput($input) {
if (!checkValue($input)) {
// Throw the exception to the calling method
throw new Exception("Invalid input provided.");
}
// Validate and process input...
}
try {
validateInput(null);
} catch (Exception $e) {
echo "Caught exception: ", $e->getMessage(), "\n";
}
6. 使用 try...catch 语句来处理多个异常
在 PHP 中,我们可以使用 `try...catch` 语句来处理多个异常。下面的代码示例子说明了如何使用 `try...catch` 语句来处理多个异常:
php
try {
// Your code here...
} catch (Exception $e) {
// Handle exception...
} catch (CustomException $e) {
// Handle custom exception...
}