2

を使用してホスト名を解決すると、ホスト名を解決できないときに例外が発生しますicmp::resolver::query query(icmp::v4(), host, "");destination = *resolver.resolve(query);今、その例外をキャッチしたいのですが、キャッチされません。現時点で持っているコードは次のとおりです。

        icmp::resolver::query query(icmp::v4(), host, "");  
        try
        {
            destination = *resolver.resolve(query);                                         
        }
        catch(boost::exception & e)
        {
             //Print exception
        } 
        catch (...) {
            //print exception   
        }

私は何を間違っていますか?

更新: アプリケーションは Visual Studio 2012 で作成され、C++ のアンマネージドおよびマネージド (.net) コードが含まれています。ブーストのバージョンは 1.54.0 です

4

1 に答える 1

0

エラーコードを与える icmp::resolver 関数のオーバーロードされた関数を使用せずに解決しました。次に、イテレーターでヌルポインター例外を取得し、それを解決して、へのポインターを持たないようにしましたresolver.resolve(query,ec)

        {
            icmp::resolver::query query(icmp::v4(), host, "");
            iter = resolver.resolve(query, ec);
            if (!ec) 
            {
                destination = *iter;
            } 
            else 
            {
                ec.value();
            }
       }
于 2013-08-05T06:13:43.160 に答える