this looks _really_ ugly. throwing an exception should _never_ be the common case, but rather only the exceptional, as the name implies. 
better is to have findChat return a boost::optional and check that in an if.