假设我有一些类可以使用 MVC。控制器的基类有构造函数和析构函数。
class BaseController {
public function __construct() {
ob_start();
}
# Some code here.
public function __destruct() {
if(!error_get_last()) {
if(!$this->doNotOutputBuffer) {
$controllerContent = ob_get_contents();
ob_clean();
$this->_template->render($this->_appinfo['directory'], $this->templateOptions, $controllerContent);
} else {
$this->_template->render($this->_appinfo['directory'], $this->templateOptions);
}
}
}
}
注意 ob_star() 和 ob_clean() 在每个函数上的存在,它应该将视图数据传递给模板类以使用模板渲染视图。当抛出异常时,我在 LoginController 之外的“TryCatch”块中捕获错误,但始终调用析构函数并且 error_get_last() 函数返回 NULL,无论如何,即使出现错误,视图也会被加载。
class LoginController extends BaseController{
public function __construct() {
parent::__construct();
}
public function main() {
throw new Exception("Error Fatal...");
}
public function __destruct() {
parent::__destruct();
}
}
我如何知道何时发生不显示视图的异常?