[英]how to catch boost message_queue returns false
我正在使用boost :: interprocess :: message_queue,並根據http://www.boost.org/doc/libs/1_35_0/doc/html/boost/interprocess/message_queue.html上給出的定義
message_queue(open_only_t open_only, const char * name);
現在我無法理解的是構造函數如何返回值? 雖然它聲明“ 函數返回false”但是afaik message_queue應該是一個構造函數。
如果它確實返回false,我可以在布爾變量中捕獲它嗎?
正如當前文檔所示,將拋出boost::interprocess::interprocess_exception
。
所以,
using namespace boost::interprocess;
try {
//Create a message_queue. If the queue
//exists throws an exception
message_queue mq
(create_only //only create
,"message_queue" //name
,100 //max message number
,100 //max message size
);
} catch (interprocess_exception const& ipe)
{
std::cerr << "Error: #" << ipe.get_error_code() << ", " << ipe.what() << "\n";
}
當運行兩次時,將打印
Error: #9, File exists
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.