Menu
CoddyTech

“try...catch”代码块

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 53 课,共 68 课。

当你的 PHP 代码遇到可能导致程序崩溃的问题时,你需要一种妥善处理这些情况的方法。try...catch 块提供了一种结构化的方式来处理异常,也就是表示代码中严重问题的特殊错误对象。

try 块中包含可能失败或抛出异常的代码。如果此块中发生异常,PHP 会立即停止执行 try 块中剩余的代码,并跳转到对应的 catch 块。catch 块会处理异常,让你的脚本能够继续运行,而不是崩溃。

<?php
try {
    // 可能抛出异常的代码
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // 处理异常
    echo "An error occurred: " . $e->getMessage();
}
?>

catch 块会接收一个 Exception 对象,其中包含出错原因的信息。你可以使用 getMessage() 方法获取错误消息。这样可以避免脚本在出错时完全停止运行,让你能够控制如何处理错误,以及用户会看到什么。

challenge icon

挑战

简单

你会收到一个输入:表示年龄值的数字。这个输入可能是负数,对于年龄来说这是无效的。

读取输入,将其转换为整数,并创建一个 try...catch 块。在 try 块中,检查年龄是否为负数。如果是负数,则抛出一个新的 Exception,并附上消息 "Age cannot be negative"。如果年龄有效(零或正数),则打印 "Valid age: ",后面跟着年龄值。

在 catch 块中,通过使用 getMessage() 方法打印 "Error: ",后面跟着异常消息,以处理该异常。

输入格式:一行,包含一个整数(例如:25 或 -5)

预期输出:

  • 如果年龄有效:Valid age: 后面跟着年龄值
  • 如果年龄为负数:Error: Age cannot be negative

亲手试试

<?php
// 读取输入
$age = intval(fgets(STDIN));

// TODO: 在下方编写代码
// 创建一个 try...catch 代码块来验证年龄


?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: PHP 在线编译器