在抛出'kj :: ExceptionImpl'实例后,Cap'n Proto终止被调用

酒吧

呼叫Cap'n Proto时,出现writeMessageToFd(pipe, message);以下错误:

terminate called after throwing an instance of 'kj::ExceptionImpl'
  what():  src/kj/io.c++:323: failed: ::writev(fd, current, iov.end() - current): Bad file descriptor; fd = -1
stack: 0x7efead69cf89 0x7efead6a0c7f 0x7efead6a2648 0x7efead6a24f7 0x7efead8f40b7 0x7efead8f42a4 0x402c7b 0x402a36 0x4028df 0x7efeabd50e50 0x7efeabd5181a 0x7efeabd52669 0x7efeabd52a03 0x7efeabd52bb2 0x402865 0x4027ab
清算

您并没有真正问过问题,但是我可以从该异常中告诉您,您不应该尝试使用无效的文件描述符来调用writeMessageToFd(异常文本告诉您此“不良文件描述符; fd = -1”) 。

您有两种选择:-如果pipe == -1,则不要调用该函数(可能最好,您应该检查返回管道的调用是否未返回-1)-用a括住对writeMessageToFd()的调用尝试/捕获并适当地处理异常

您应该真正使用前者,并在管道中适当地处理-1值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在抛出 std::exception 实例后调用终止

在抛出 'std::out_of_range' what() 实例后调用终止:basic_string::at: __n 错误

抛出'std :: regex_error'实例后调用终止

抛出异常实例后终止调用,核心转储

抛出'pqxx :: broken_connection'实例后调用终止

在抛出“std::system_error”实例后调用 Tensorflow 终止

抛出'std :: out_of_range'实例后调用终止

C++ 抛出错误“在抛出‘std::bad_alloc’的实例后终止调用”

SWIG C ++到Python:抛出...异常终止后终止调用

为什么“在抛出一个 'std::out_of_range' what(): basic_string::at: __n (which is 0) >= this->size() (which is 0) 实例后终止调用?

抛出“ char const *”实例后,调用C ++中的异常处理终止

在C ++中抛出'std :: out_of_range'实例后调用终止

为什么在插入析构函数时总是得到“在抛出...实例后终止调用”?

得到错误“抛出'std :: bad_alloc'what():whatstd :: bad_alloc实例后终止调用”

抛出“std::system_error”线程池实例后调用终止

当捕获到异常_should_时,调试“抛出...的实例后调用终止”

为什么在抛出'std :: bad_alloc'实例后终止调用?

C ++错误:抛出'std :: bad_alloc'实例后终止调用

Tensorflow MNIST:抛出'std :: bad_alloc'实例后调用终止

抛出“std::invalid_argument”实例后调用终止 what(): leetcode 问题中的 stoi 错误

在抛出'std::runtime_error' what() 实例后调用终止:filebuf 和 ostream 的 I/O 错误

抛出'std :: out_of_range'what():vector :: _ M_range_check实例后终止调用

在抛出“std::regex_error”what() 实例后调用终止:括号未关闭

在字符串函数中抛出“ char const *”的实例后调用终止

std::stoi() 错误——“在抛出 'std::invalid_argument' 实例后终止调用”

抛出'std::bad_alloc'的实例后调用C++终止

c++ 在抛出'std::out_of_range' std::vector 的实例后调用终止

C ++应用程序MySQL odbc数据库连接错误:抛出'otl_tmpl_exception <>实例后终止调用

比较二进制数字输入的字符时,抛出'std :: out_of_range实例后调用终止