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
我目前正在 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”作为输出(更简单的方法,参见
如果您由于某些原因无法更改实际使用的 TYPO3 系统,另一种方法是使用易于设置的本地开发系统,如 DDEV。这提供了一种创建本地 TYPO3 实例的简化方法,参见例如the TYPO3 blog article