Exceção C ++ para ponteiros nulos

Tenho uma pequena função (em uma DLL) que se parece com isso:

int my_function(const char* const s)
{
    try {
        return my_object->do_something_with(s);
    } catch (exception& e) {
        return ERROR_CODE;
    }
}

Eu pensei que o bloco try-catch impediria qualquer coisa que pudesse acontecer dentromy_object da propagação para o exterior. Infelizmente, eu estava errado, e meu programa que chama essa função (do VB) parou de funcionar porque eu havia passado um argumento de ponteiro nul

Então, por que meu bloco try-catch não está funcionando como (I) esperado? Existe uma solução alternativa? Eu costumava programar muito em Java e acho que teria funcionado lá ...

questionAnswers(6)

yourAnswerToTheQuestion