【发布时间】:2011-03-11 10:50:28
【问题描述】:
我有一个小函数(在 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 块没有按(我)预期的那样工作?有解决方法吗?我曾经用 Java 编写过很多程序,我认为它会在那里工作......
【问题讨论】:
-
那是你直接暴露给VB的函数吗?你没有COM接口吗?
-
不,我只是导出了一些可以用
__declspec(dllexport) __stdcall和一个DEF文件调用的函数。 -
好吧,那么您必须选择一些值来指示错误。您必须手动检查空指针并返回该值。 C++ 异常在这里帮不了你。
标签: c++ exception-handling nullpointerexception