如何正确提供报错信息?

后端

为什么要提供完整的报错信息?

首先来看一张图,图片来源:https://easyexcel.opensource.alibaba.com/qa/

image-20250531100054732

⚠⚠⚠ 错误案例请勿模仿!!! ⚠⚠⚠

1)提问:“我报错了怎么解决😭” 2)直接发送接口测试工具返回的报错信息截图

image-20250531101329319

image.png

3)发送部分报错信息的截图

image-20250531101539510

正确做法

本地开发环境

1、⚠⚠⚠ 复制完整的报错信息 ⚠⚠⚠ 。

image-20250531102513175

image-20250531102604787

2、通过 https://www.codecopy.cn 发送分享链接。

将前面复制的完整报错信息粘贴 (Ctrl + V) 到 https://www.codecopy.cn 中。

image-20250531102710761

最后点击「分享」,并将生成的链接分享。

image-20250531102831702

服务器环境

宝塔面板

打开“网站”管理页面,选择出现报错的对应项目名称。

image-20250531103728386

找到「日志管理」,复制相关的报错信息(可使用 Ctrl + A 全选复制报错信息),然后粘贴到 https://www.codecopy.cn 进行分享。

image-20250531103734236

Docker

1、输入下面吗命令,获取正在运行的 container 的 CONTAINER ID

text
复制代码
docker ps

image-20250531105026098

2、获取 log

text
复制代码
docker logs -f CONTAINER ID

比如,我的 CONTAINER ID82dad50796ef

那么我就要输入

text
复制代码
docker logs -f 82dad50796ef

image-20250531105229626

3、全选复制对应的报错信息也是 Ctrl + A 全选复制报错信息https://www.codecopy.cn

测试接口是否正常

1、首先测试后端服务的连通性

Windows

text
复制代码
telnet 服务器IP 后端运行的端口

Mac

text
复制代码
nc -vz 服务器IP 后端运行的端口

比如:我服务器 IP 是 123.123.123.123 线上后端运行端口是 8080

那么我的请求命令可以这样写

text
复制代码
telnet 123.123.123.123 8080

下面是成功的情况

image-20250531114024783

下面是失败的情况

image-20250531113601584

解决:

上一张 AI 根据我下面流程化生成的图

download

1)首先检查是否启动成功

在服务器上执行下面命令(如果后端运行在 8080)如果没有内容输出证明启动失败,检查日志解决问题

text
复制代码
lsof -i:8080

失败情况

image-20250531114645863

成功情况

image-20250531114732221

2)排除启动失败的情况

然后再检查「防火墙」相关的配置

  1. 云服务商防火墙
  2. 宝塔安全组
  3. 如果是 Ubuntu 服务器检查一下 ufw 是否开启,如果开启直接关闭即可
text
复制代码
sudo ufw disable

3)还是不行

重启服务器进行尝试

4)上面的问题都排查了还是不行😭

先看一下是不是校园网,如果是校园网用手机热点进行尝试

2、当连通性测试完毕之后,就可以用 Postman 等 其他工具测试接口是否正常了

如果出了 BUG 也是先看报错日志,根据日志进行解决 BUG ,如果没有输出错误日志的情况下,大概率是因为把异常「吞了」可以远程 remote debug 看看

1) localhost 换成服务器 IP

2)8123 换成线上实际运行的端口

image-20250531114248084

前端

这里的「前端」更多指的是前后端联调方面的报错

需要提供浏览器控制台 (Console) 的错误信息以及相关的网络请求 (Network) 信息。这里使用截图也是够用的,但是注意尽量截图要尽量全不要截局部信息

网络请求

如果在「网络 (Network)」面板中没有看到相关的请求,请先按 F12 打开开发者工具 (Developer Tools),然后再执行前端的相应操作(例如点击按钮、刷新页面等),这样就可以捕获到请求信息,如下图所示。

image-20250531110011057

如果仍然没有捕获到请求,请检查开发者工具网络面板中的录制按钮(通常是一个红点或灰点按钮)。如果它是灰色的(表示暂停录制或未开始录制),请手动点击一下,使其变为红色(表示正在录制网络活动)

image-20250531110741022

正常状态是红色

image-20250531110841969

浏览器控制台

请先按 F12 打开开发者工具 (Developer Tools),找到 Console

image-20250531112113646 比如下面这种情况,很典型的跨域问题

image-20250531112604327

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
leikooo
下载 APP