2013-03-03 3 views
0

날짜가 부스트 date_time을 사용하여 유효한지 확인하려고합니다. 날짜가 유효하지 않은 경우 문서에서 예외가 throw됩니다.증가 날짜 시간 잡기 예외

#include "boost/date_time/gregorian/gregorian.hpp" 
#include <iostream> 

int main() 
{ 
    int year = 2013; 
    int month = 1; 
    int day = 50; 

    try 
    { 
     boost::gregorian::date d(year, month, day); 

     throw 20; 
    } 
    catch (int e) 
    { 
     std::cout << "error! date does not excist!" << std::endl; 
     std::cout << "error no: " << e << std::endl; 
    } 

    return 0; 
} 

마지막 질문 : 은 무엇인가 지금은

간단한 테스트 코드 .. 날짜가 실제로 유효하지만 여전히 어떻게 든 내 프로그램 밖으로 던져 도착 정지한다면, 시도 - 캐치를 사용하려고했습니다 date_time을 사용하여 날짜를 확인하는 올바른 방법은 무엇입니까?

답변

0

boost::gregorian::date 일, 월 또는 연도가 범위를 벗어난 경우 std::out_of_range 유형 예외가 throw됩니다. catch 블록이 int 유형의 예외를 포착합니다. 특정 예외를 잡으려면 std::out_of_range 유형의 catch 블록을 사용해야합니다.

또한, 귀하의 try 블록에 throw(20) 문을 사용할 필요가 없습니다.

+0

oops, 나는 try/catch 섹션을 다시 읽어야한다고 생각합니다 : p thanks! – Robert

+0

btw, 이것이 올바른 날짜 확인 방법입니까? – Robert