我在 C++/ATL(活动模板库)中有一个旧的 COM 组件,它使用 dynamic_cast 将 COM 接口转换为实现该接口的 C++ 类。
如果无法进行转换,则 dynamic_cast 返回一个 NULL 指针。
我现在在一个可见的 C# 组件中实现了同一个 COM 接口的新实现。
当从 C# 将 dynamic_cast 运算符应用于 COM 对象时,我希望它返回 NULL,但实际上它会引发异常(我不知道是什么异常)。
我当然可以将 dynamic_cast 包装在 try/catch 块中,但这是正常行为吗?