gpt4 book ai didi

c++ - 捕获从用 C++ 编写的 ActiveX 控件抛出的 Javascript 中的异常

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:39 24 4
gpt4 key购买 nike

我用 C++ 编写了一个 ActiveX 控件,当控件中出现错误情况时,它会抛出 (C++) 异常。调用表示控件实例的对象的 Javascript 代码被 try - catch block 包围:

try
{
var controlInstance = window.controlInstance;

... perform operations on controlInstance ...
}
catch (e)
{
alert("something bad happened");
}

现在,当我在 IE8(或 7 或 6)下运行此代码并附加了 Visual Studio (2008) 调试器时,一切都按预期工作 - 无论控件是在启用还是不启用 DEBUG 的情况下编译的。但是,在没有附加调试器的情况下运行浏览器时,当异常跨越控件和 JScript 之间的边界时,IE 会(真的)崩溃。

有没有人对如何解决这个问题有任何建议?我意识到我可以更改控件的接口(interface)以将异常作为参数传回,但我真的不想做这样的更改。

如有任何帮助,我们将不胜感激。

最佳答案

您如何从 C++ 传递异常?如果您想将异常传播到 javascript,则一般的 throw 不起作用。您需要抛出类型为 COleDispatchException 的异常,正确的做法是调用

AfxThrowOleDispatchException(101, _T("Exception Text Here")); // First parameter is exception code. 

引用:http://doc.sumy.ua/prog/active_x/ch03.htm#Heading20

关于c++ - 捕获从用 C++ 编写的 ActiveX 控件抛出的 Javascript 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3791687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com