You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React客户端获取NestJS WebSocket抛出的WsException错误?

在React中捕获NestJS WebSocket抛出的WsException错误

NestJS抛出的WsException会被自动包装并通过Socket.io传递给前端,你可以通过两种方式在React中捕获这个错误:

方式1:在emit时传入回调函数

Socket.io支持发送事件时附带回调函数,NestJS会将错误作为回调的第一个参数返回,成功响应则作为第二个参数。修改你的前端代码如下:

const MessageData = {
    conversation: 16
};
socket.emit("createMessage", MessageData, (error, response) => {
    if (error) {
        // 捕获到NestJS抛出的WsException
        console.error('错误信息:', error.message);
        // 这里可以添加UI提示逻辑,比如弹窗展示错误
        alert(error.message);
        return;
    }
    // 处理成功响应
    console.log('收到响应:', response);
});

方式2:监听全局WebSocket错误事件

如果需要捕获所有WebSocket相关的错误(包括连接错误、消息处理错误等),可以监听error事件:

socket.on('error', (error) => {
    console.error('全局WebSocket错误:', error.message);
    // 统一处理错误逻辑
});

说明

NestJS默认的Socket.io适配器会将WsException包装为包含status、message和name字段的对象,你可以直接通过error.message获取你在后端定义的错误文本(比如示例中的"Error occured from siam!")。

内容的提问来源于stack exchange,提问作者Jannat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:50:22