Typo3 extbase:如何捕获异常?

Typo3 extbase : How can i catch an exception?

我目前正在 Typo3 10.4 中开发一个扩展,但我无法解决问题

我正在使用一些外部库进行邮寄或付款,有时会抛出异常。

我的问题是,当发生这种情况时,即使我尝试捕获异常,也会出现 OOPS 错误

例如:

//CODE BEFORE
try{
  //SOME CODE WHO SENDS EMAIL AND SOMETIMES THROW EXCEPTION
  //BECAUSE THE CONNECTION FAILED
}catch(Exception $e){
  //DO SOMETHING
}
//CODE AFTER

这是一个非常恼人的问题,因为那时一些数据库操作还没有完成

我确定有一种方法可以在不停止所有脚本的情况下处理异常,但我不知道如何...

有人可以帮忙吗?

谢谢大家

您的方法是正确的,TYPO3 应该不会干扰。因此,似乎还有另一个问题,所以这里有几点需要考虑:

请记住,您的 TYPO3 扩展代码是命名空间的,如果您真的 catch(Exception $e) 则意味着 \Your\Namespace\Exception - 您可能需要 catch(\Exception $e).

也就是说,另外配置一种方法来显示异常堆栈跟踪而不是“Oops”作为输出(更简单的方法,参见 )或连接远程调试器,如 xdebug(更高级)为了看到更多的糟糕信息并了解错误的真正原因及其传播方式。

如果您由于某些原因无法更改实际使用的 TYPO3 系统,另一种方法是使用易于设置的本地开发系统,如 DDEV。这提供了一种创建本地 TYPO3 实例的简化方法,参见例如the TYPO3 blog article