2010-11-19 3 views
2

부스트 asio는 socket connect api입니다. 다음과 같은 간단한 코드가 있습니다.부스트 asio boost :: system :: error_code 잡는 법은 예외를 다른 예외와 별도로 연결 하시겠습니까?

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; 
} 

내가 원하는 것은 boost :: system :: error_code 연결 예외를 연결하려고 시도하는 것입니다. 그것만. 더 이상 캐시 할 필요가 없습니다. 그걸 -1로 돌려 주어야합니다. 그런 일을하는 방법?

답변

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

const 참조로 찾아주세요.

+0

+1 용 const 참조 –

+0

정교하게 주시겠습니까? 왜 const 레퍼런스인가? – Jon

+0

Ref는 복사본을 만들지 않으므로 참조하십시오. 왜냐하면 당신은 그것을 바꾸고 싶지 않기 때문입니다. –

관련 문제