错误处理#
在设计流程逻辑时,考虑潜在错误并设置优雅的处理方法是一个良好的实践。通过错误工作流,您可以控制n8n如何响应工作流执行失败的情况。
创建并设置错误工作流#
对于每个工作流,您可以在工作流设置中设置一个错误工作流。当执行失败时它会运行。这意味着您可以在工作流执行出错时发送电子邮件或Slack警报。错误工作流必须以Error Trigger开始。
您可以将同一个错误工作流用于多个工作流。
- 创建一个新的工作流,将错误触发器作为第一个节点。
- 为工作流命名,例如
Error Handler。 - 选择保存。
- In the workflow where you want to use this error workflow:
- 选择选项
> 设置。 - 在错误工作流中,选择您刚刚创建的工作流。例如,如果您使用了名称"Error Handler",请选择Error handler。
- 选择保存。 现在,当此工作流出错时,相关的错误工作流将运行。
- 选择选项
错误数据#
Error Trigger 接收到的默认错误数据是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
所有信息始终存在,除了:
execution.id: 需要将执行记录保存到数据库中。如果错误发生在主工作流的触发节点中则不会出现,因为此时工作流尚未执行。execution.url: 需要将执行记录保存到数据库中。如果错误发生在主工作流的触发节点中则不会显示,因为此时工作流尚未执行。execution.retryOf: 仅当执行是对失败执行的重试时存在。
如果错误是由主工作流的触发节点引起的,而非后续阶段,那么发送到错误工作流的数据会有所不同。execution{}中的信息较少,而trigger{}中的信息更多:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
使用停止与错误导致工作流执行失败#
When you create and set an error workflow, n8n runs it when an execution fails. Usually, this is due to things like errors in node settings, or the workflow running out of memory.
您可以在工作流中添加Stop And Error节点,以便在选定条件下强制使执行失败,并触发错误工作流。