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 и думаю, что это сработало бы там ...

Ответы на вопрос(6)

Ваш ответ на вопрос