gpt4 book ai didi

exception - symfony 1.4 : How to pass exception message to error. html.php?

转载 作者:行者123 更新时间:2023-12-04 17:39:44 24 4
gpt4 key购买 nike

我尝试使用特殊变量 $message此处描述 http://www.symfony-project.org/cookbook/1_2/en/error_templates但似乎这个变量没有在 symfony 1.4 中定义,至少它不包含以这种方式传递给异常的消息 throw new sfException('some message')
您知道将此消息传递给 error.html.php 的其他方法吗?

最佳答案

您需要进行一些自定义错误处理。我们自己实现了一个自定义 symfony Action 的转发。不过要小心,此操作本身也可能触发异常,您需要考虑到这一点。

以下可能是一个好的开始。首先为事件添加一个监听器,一个好地方是 ProjectConfiguration.class.php:

$this->dispatcher->connect('application.throw_exception', array('MyClass', 'handleException'));

使用事件处理程序可能足以满足您想要对异常执行的操作,例如,如果您只想将堆栈跟踪发送给管理员。我们希望转发到自定义操作以显示和处理反馈表。我们的事件处理程序看起来像这样:
class MyClass {
public static function handleException(sfEvent $event) {
$moduleName = sfConfig::get('sf_error_500_module', 'error');
$actionName = sfConfig::get('sf_error_500_action', 'error500');
sfContext::getInstance()->getRequest()->addRequestParameters(array('exception' => $event->getSubject()));
$event->setReturnValue(true);
sfContext::getInstance()->getController()->forward($moduleName, $actionName);
}
}

您现在可以在 settings.yml 中配置要转发到异常的模块和操作
all:
.actions:
error_500_module: error
error_500_action: error500

在 Action 本身中,您现在可以做任何您想做的事情,除了异常(exception),例如。显示反馈表以联系管理员。您可以使用 $request->getParameter('exception') 获取异常本身

关于exception - symfony 1.4 : How to pass exception message to error. html.php?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076057/

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