The DateTime constructor requires that the year, month, day etc are for a valid date/time but there is no way for the caller to check that this precondition is satisified. Why not provide a static isValid method. The poco_assert will try to invoke the debugger so the caller (IMO) should not assume that he can catch any assertion that the constructor will throw. So he needs to be able to check the precondition himself.