gpt4 book ai didi

php - 将变量/值传递给自定义异常?

转载 作者:可可西里 更新时间:2023-10-31 23:49:24 28 4
gpt4 key购买 nike

这就是您将值(下例中的“用户名”)传递给自定义异常的方式吗?问题是我会使用 __construct() 吗?使用自定义异常来检查是否设置了重要变量是一种矫枉过正吗?

class customException extends Exception {

public function __construct($e) {
parent::__construct($e); // makes sure variable is set? [1]
$this->e = $e;
}
public function redirect_user() {
if($this->e === "username") {
header("Location: ");
}
}
}

class testing {

public function test() {
try {
if(!isset($_POST['username'])) {
throw new customException("username");
}
}
catch(customException $e) {
$e->redirect_user();
}
}
}

[1] http://php.net/manual/en/language.exceptions.extending.php#example-266

附带说明一下,parent::__construct($e) 的目的是什么?这不是多余的吗?

最佳答案

你的构造函数根本没有理由。我建议使用 $this->getMessage() 访问您尝试设置为 $this->e 的值。

所以做这样的事情:

class customException extends Exception {
public function redirect_user() {
if($this->getMessage() === "username") {
print_r("Header");
}
}
}

它更直接,只扩展基类的功能,而不是不必要地覆盖构造函数。

话虽这么说,但我个人不喜欢像您这样使用异常来执行应用程序流逻辑的想法。对我而言,自定义异常对于与自定义日志记录系统交互或能够记录应用程序状态的某些方面很有用,这些方面无法通过默认异常类获得。

关于php - 将变量/值传递给自定义异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905971/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com