2010-11-19 20 views
2

Yükseltme işlemi, socket connect api numaralı telefona sahiptir.Nasıl boost asio boost yakalanır :: system :: error_code istisnayı diğer istisnalardan ayırır mı?

try 
{ 
    std::string addr; 
    std::string port; 
    sscanf(tcpUrl.c_str(), "tcp://%[^:]:%d", &addr, &port); 

    boost::asio::io_service io_service; 

    tcp::resolver resolver(io_service); 
    tcp::resolver::query query(tcp::v4(), addr.c_str(), port.c_str()); 
    tcp::resolver::iterator iterator = resolver.resolve(query); 

    tcp::socket s(io_service); 
    s.connect(*iterator); 
    Sleep(250); 
    s.close(); 
} 
catch (std::exception& e) 
{ 
    return -1; 
} 

Bütün istediğim bağlayıp yakalamak boost :: sistemi :: hata_kodu istisna bağlanmayı denemek için: Ben böyle basit bir kod var. Sadece bu. Daha fazla önbelleğe ihtiyacım yok. ve üzerinde -1'e dönmem gerekiyor. Böyle bir şey nasıl yapılır?

cevap

6
catch(const boost::system::system_error& ex) 
{ 
    return -1; 
} 

Lütfen başvuru referansına bakın.

+0

+1 Yapı referansı için –

+0

Lütfen ayrıntılı bilgi verir misiniz? Neden ref ref? – Jon

+0

Ref Bir kopya yapmak istemediğiniz için. Const değiştirmek istemediğiniz için. –

İlgili konular