Ответ 1
Я предлагаю секретную опцию C, которая позволяет избежать как исключительных исключений, так и выполнять поиск дважды:
MyMapType::const_iterator iter = mymap.find(key);
if(iter != mymsp.end())
{
// Item in the map. The value will be accessible as `iter->second`.
}
В С++ это не идиоматично использовать обработку исключений для управления потоком, что и делает второй пример кода. Это будет затруднять понимание разработчиками кода, и, в зависимости от конкретного компилятора, он может не работать также.