JVM - это барьер, который дает вам много хороших возможностей по обработке ошибок (на которые мы, Java-разработчики, склонны слишком полагаться). Эти возможности по обработке ошибок необходимо явно кодировать, когда вы работаете на более низком уровне (не только в C ++.)
я есть маленькая функция (в DLL), которая выглядит следующим образом:
int my_function(const char* const s)
{
try {
return my_object->do_something_with(s);
} catch (exception& e) {
return ERROR_CODE;
}
}
Я думал, что блок try-catch предотвратит все, что может случиться внутриmy_object
от распространения на улицу. К сожалению, я ошибся, и моя программа, которая вызывает эту функцию (из VB), просто перестала работать, потому что я передал аргумент нулевого указателя.
Итак, почему мой блок try-catch не работает так, как ожидалось (I)? Есть ли обходной путь? Я много программировал на Java и думаю, что это сработало бы там ...