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

如何捕获LibRabbitMQ相关异常?C++程序异常处理求助

LibRabbitMQ异常处理与断点设置问题

背景

我正在开发一个与RabbitMQ交互的C++程序,RabbitMQ以Windows服务形式部署在远程机器上,程序通过VCPKG使用LibRabbitMQ库。

问题现象

我使用以下代码从队列中获取消息:

__try
{
    reply = amqp_consume_message(connection, envelope, timeout, 0);
}
__except (EXCEPTION_EXECUTE_HANDLER)

这段代码无法正常工作,程序弹出“未指定错误”提示框。此前我尝试过try ... catch()结构,同样无法捕获异常。

由于amqp_consume_message(...)被持续调用,我无法直接在该函数上设置断点。

出现错误对话框时,调用栈如下:

ntdll.dll!_NtWaitForSingleObject@12()   Unknown
mswsock.dll!SockWaitForSingleObject()   Unknown
mswsock.dll!_WSPSelect@24() Unknown
ws2_32.dll!select() Unknown
>   rabbitmq.4.dll!amqp_poll(int fd, int event, amqp_time_t_ deadline) Line 216 C
rabbitmq.4.dll!recv_with_timeout(amqp_connection_state_t_ * state, amqp_time_t_ timeout) Line 673   C
rabbitmq.4.dll!wait_frame_inner(amqp_connection_state_t_ * state, amqp_frame_t_ * decoded_frame, amqp_time_t_ timeout_deadline) Line 785    C
rabbitmq.4.dll!amqp_simple_wait_frame_noblock(amqp_connection_state_t_ * state, amqp_frame_t_ * decoded_frame, const timeval * timeout) Line 930    C
rabbitmq.4.dll!amqp_consume_message(amqp_connection_state_t_ * state, amqp_envelope_t_ * envelope, const timeval * timeout, int flags) Line 122 C
librabbitmq_tester.exe!SafeConsumeMessage(amqp_connection_state_t_ * connection, amqp_envelope_t_ * envelope, const timeval * timeout, unsigned long * pExceptionCode) Line 33  C++
librabbitmq_tester.exe!CRabbitMQWrapper::ListenerThreadProc() Line 460  C++
[Inline Frame] librabbitmq_tester.exe!std::invoke(void(CRabbitMQWrapper::*)() &&) Line 1686 C++
librabbitmq_tester.exe!std::thread::_Invoke<std::tuple<void (__thiscall CRabbitMQWrapper::*)(void),CRabbitMQWrapper *>,0,1>(void * _RawVals) Line 61    C++
ucrtbased.dll!thread_start<unsigned int (__stdcall*)(void *),1>(void * const parameter) Line 97 C++
kernel32.dll!@BaseThreadInitThunk@12()  Unknown
ntdll.dll!___RtlUserThreadStart@8() Unknown
ntdll.dll!__RtlUserThreadStart@8()  Unknown

疑问

  • 我该如何进行异常处理?
  • @Jarod42,你建议我如何修改断点设置?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 06:38:11