【n8n】如何跟着AI学习n8n【04】:错误处理与日志监控
前言
n8n的系统性学习,对各知识点地毯式学习🔍~
前面课程
定制n8n的AI老师,有AI老师制定学习大纲,参考之前的文档(本系列n8n学习大纲,也在这里):
【n8n】如何跟着AI学习n8n_01:定制AI老师-CSDN博客
第二课开始基础知识学习
【n8n】如何跟着AI学习n8n【02】:基础节点学习-CSDN博客
【n8n】如何跟着AI学习n8n【02.5】:第一部分总练习-CSDN博客
【n8n】如何跟着AI学习n8n【03】:HTTPRequest节点、Webhook节点、SMTP节点、mysql节点-CSDN博客
👌好了,下面的课程还是基础知识,苍天大厦,都是一砖一瓦堆砌而成,继续搬砖💪
🧭 Day 12:错误处理与日志监控
🧱 学习内容详解
1. 创建错误处理流程
2. Catch Error
节点使用
✅ 核心功能
- 捕获流程中任何节点的执行错误
- 将错误信息传递给后续节点处理
🧪 实战任务:构建带错误处理的流程
✅ 任务目标
创建一个流程,当数据库写入失败时,自动发送错误通知。
🔧 操作步骤
Step 1:创建错误处理流程
- 创建一个新工作流,将错误触发器作为第一个节点。
- error trigger后面增加一个SMTP节点,发生错误发生邮件通知:
html正文代码:
Workflow: {{$json["workflow"]["name"]}}<br>
Error: {{$json["execution"]["error"]["message"]}}<br>
Last node executed: {{$json["execution"]["lastNodeExecuted"]}}<br>
Execution URL: {{$json["execution"]["url"]}}<br>
Stacktrace:
{{$json["execution"]["error"]["stack"]}}
- 为工作流命名,例如 。User
Error Handler
- 选择保存。
- 流程展示:
Step 2:在监听错误的流程设置
在上一个练习的流程中,增加错误监听:
- 打开设一个工作流
- 点击流程设置。
- 在错误工作流中,选择刚刚创建的工作流。例如,如果使用名称“错误处理程序”,请选择“错误处理程序”。
- 选择保存。 现在,当此工作流出错时,将运行相关的错误工作流。
Step 3:测试
- 但手动运行工作流时,无法测试错误工作流,我们需要对被监听流程进行“激活”:
- 切换生成模式:
-
- 然后,激活流程
- 重复执行流程,因为sql中id设置了唯一值,相同数据插入数据库,会产生错误
收到的错误提示邮件:
⚠️请注意以下事项:
- 如果工作流使用“错误触发器”节点,则无需激活该工作流。
- 如果工作流包含“错误触发器”节点,则默认情况下,该工作流将自身用作错误工作流。
- 手动运行工作流时,无法测试错误工作流。错误触发器仅在自动工作流出错时运行。
说明:不同错误节点的区别见附录内容。
🧭 Day 13:企业级实战项目
🎯 项目目标
构建一个完整的 用户注册自动化系统,包含:
- 数据接收
- 数据清洗
- 多条件分支
- 数据库存储
- 异常报警
- 多通道通知
🏗️ 项目架构
[外部系统]↓ (POST)
Webhook → Set(提取数据) → Code(清洗+验证)↓IF(年龄判断)├─ 成年 → MySQL(写入)└─ 未成年 → Email(审核通知)→ Wait(24h)(模拟审核)→ 写入数据库↓
[错误处理] → Error Trigger→Email报警
实现过程,大家根据前面知识点自行编写吧,教主累了😮💨
附录
“Error Trigger”、“Stop and Error”、“DebugHelper”节点的区别
1. Error Trigger(错误触发器)
- 捕获整个工作流中的未处理异常或错误。当工作流遇到错误未被捕获时,错误触发器会激活,允许你捕获错误信息,并进行后续处理(如通知、记录等)。
2. Stop and Error(停止与错误)
停止当前的工作流,并抛出一个错误
3. DebugHelper(调试助手)
- 可以输出各种异常,调试程序用。也许本地和线上环境有差异,没看到:帮助开发者查看经过的数据,跟踪流程的功能。
4. 节点抛出错误
- 通过
throw new Error()
在节点中主动触发错误。
节点/机制 | 作用 | 使用场景 |
---|---|---|
Error Trigger | 捕获流程中未处理的错误 | 全局错误捕获,错误管理流程 |
Stop and Error | 停止流程,抛出错误 | 配合异常处理程序使用 |
DebugHelper | 制造各种类型的错误 | 程序过程调试 |
throw Error | 节点中使用 | 和业务结构,更灵活 |