我开始学习 Exception 课程,如果这个问题对某人来说很愚蠢,我深表歉意。我想在我的 MVC 提案中使用异常继承。创建了一个继承自内置 Exception 类的 ErrorController 类。我在其中创建了 processServError() 方法,以便在其他类中使用它来处理所需的错误......
<?php
namespace Controller;
use Throwable;
use View\View;
use \Exception;
class ErrorController extends Exception
{
private static $curlErr;
function __construct($message = "", $code = 0, Throwable $previous = null)
{
parent::__construct($message, $code, $previous);
}
public static function processServError($curlErr) {
return self::$curlErr;
}
但是当在另一个文件中我尝试以这种方式引用生成的方法时:
if (!empty($curlErr)) {
throw new ErrorController::processServError($curlErr);
} else {
然后使用 throw 抛出异常不起作用.虽然其他静态类的其他静态方法工作正常...
然后如何使用来自 ErrorController 的各种错误的方法?请告诉我...
问题的原始陈述和调用“其他静态方法”的示例不清楚。你的错误是
Exception-异常类。只有在编写自己的异常时才应该扩展它。因此,ErrorController是个例外。所以,你需要通过throw new ErrorController().放入不适用于此异常的异常类算法和术语的名称和主体是错误的和令人困惑的(尽管这不是语言级别的错误)。这适用于任何班级。异常不应管理异常。
您传递给
processServError()某个值,不要在内部使用它,然后 returnself::$curlErr,它根本没有初始化;看起来您正在尝试为要抛出的异常的名称创建一个动态定义,但您
new没有传入类名或包含它的变量。我可以假设你需要,例如,这个:
不同的是,在前两个示例中,我们首先从方法中获取异常的名称并抛出它。在第三个示例中,我们通过从变量中获取异常名称来引发异常。