Try Catch
一种在流程内部局部捕获错误的编程机制,支持就地降级、回退或重试,控制粒度为节点级
时间轴 (近 90 天)
n8n 的 Try Catch 内联处理将风险节点局部隔离在流程内部,错误发生时就地捕获并尝试降级或回退,控制粒度是节点级的。
Error Trigger 的触发条件是“整个执行失败”,而非某个节点单独报错;如果节点错误被 Try Catch 捕获并处理,执行不会以错误状态终止,Error Trigger 也就不会触发。
比较稳妥的做法是两层都上:外层配置 Error Trigger Node 兜住所有没被局部处理的错误并推送通知,内层对已知的高风险节点加 Try Catch 就地做重试或降级处理。
如果所有节点都用 Try Catch 包一遍,流程会变得臃肿且难以维护;如果只用全局触发器,则失去了在流程内优雅恢复的机会。
在 n8n 的 Try Catch 节点中,通常可以通过配置“Throw Error”选项或在 Catch 分支中手动抛出错误来实现重新抛出错误(rethrow)。
是否重新抛出错误取决于业务语义:可降级的错误(如缓存未命中、非关键字段缺失)就地消化即可;不可降级的错误(如认证失败、核心数据丢失)应重新抛出,避免被静默吞没。
选择使用 Try Catch 还是 Error Trigger 的判断标准可以简化成:这个错误发生时,流程还能不能继续有意义地往下走?能,就用 Try Catch 内联处理;不能,就让它失败,交给 Error Trigger 做告警和后续动作。
Error Trigger 和 Try Catch 不是替代关系,而是互补关系:全局安全网保证不漏报,内联处理保证可恢复。
全部知识事实 (8)
n8n 的 Try Catch 内联处理将风险节点局部隔离在流程内部,错误发生时就地捕获并尝试降级或回退,控制粒度是节点级的。
50%待验证Error Trigger 的触发条件是“整个执行失败”,而非某个节点单独报错;如果节点错误被 Try Catch 捕获并处理,执行不会以错误状态终止,Error Trigger 也就不会触发。
50%待验证比较稳妥的做法是两层都上:外层配置 Error Trigger Node 兜住所有没被局部处理的错误并推送通知,内层对已知的高风险节点加 Try Catch 就地做重试或降级处理。
50%待验证如果所有节点都用 Try Catch 包一遍,流程会变得臃肿且难以维护;如果只用全局触发器,则失去了在流程内优雅恢复的机会。
50%待验证在 n8n 的 Try Catch 节点中,通常可以通过配置“Throw Error”选项或在 Catch 分支中手动抛出错误来实现重新抛出错误(rethrow)。
50%待验证是否重新抛出错误取决于业务语义:可降级的错误(如缓存未命中、非关键字段缺失)就地消化即可;不可降级的错误(如认证失败、核心数据丢失)应重新抛出,避免被静默吞没。
50%待验证选择使用 Try Catch 还是 Error Trigger 的判断标准可以简化成:这个错误发生时,流程还能不能继续有意义地往下走?能,就用 Try Catch 内联处理;不能,就让它失败,交给 Error Trigger 做告警和后续动作。
50%待验证Error Trigger 和 Try Catch 不是替代关系,而是互补关系:全局安全网保证不漏报,内联处理保证可恢复。
50%