Проверяемые исключения - это та ещё спорная вещь в джаве, не хотелось бы углубляться в это.
у меня просто нет одного корня, куда прилетает всё со всей программы.
Вы своими тремя примерами подтвердили, что исключения - не для нормальных ситуаций.
std::wstring filterMyException(const std::exception& e)
{
if (!dynamic_cast<MyException*>(&e))
return std::wstring();
return loc::get("Error.MyException");
}
Я замечал, что Borland не компилирует шаблона, пока он не будет расшаблонен, и даже если поставить вопиющую ошибку, он её не поймает. С MinGW всё в этом плане в порядке. Оказывается, в Borland нет two-phase lookup!