创建自定义异常
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 56 课,共 68 课。
虽然 PHP 内置的 Exception 类适用于处理一般错误,但创建自己的自定义异常类可以提供更具体、更有意义的错误消息。自定义异常可以帮助你区分代码中的不同问题,并以恰当的方式处理它们。
要创建自定义异常,你可以使用 extends 关键字扩展 PHP 的基类 Exception。通过这种继承,你的自定义异常可以获得标准异常的所有功能,同时还能添加自己的特定行为,或者只是使用更具描述性的名称。
<?php
class InvalidEmailException extends Exception {
// 这个类可以是空的,因为它继承了 Exception 的所有内容
}
// 你也可以添加自定义属性或方法
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>自定义异常的优势在于名称具有描述性,并且可以捕获特定类型的异常。你可以捕获 InvalidEmailException、DatabaseConnectionException 或你创建的其他自定义异常,而不是捕获通用的 Exception。这样可以让错误处理更精准,也让代码更易于维护。
挑战
简单你会收到一个输入:表示异常类名称的字符串。这个输入是一个单词,应作为自定义异常类的名称(例如:NegativeBalanceException 或 InvalidUsernameException)。
读取输入,并使用提供的名称创建一个自定义异常类。你的自定义异常类应继承 PHP 的基类 Exception。创建类后,打印 "Custom exception created: ",后面接上你收到的类名称。
输入格式:一行,包含表示异常类名称的字符串(例如:InvalidAgeException)
预期输出:Custom exception created: 后面接上异常类名称
亲手试试
<?php
// 读取异常类的名称
$className = trim(fgets(STDIN));
// TODO:在下方编写代码,创建自定义异常类
// 输出结果
echo "Custom exception created: " . $className;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: PHP 在线编译器