[ScriptableMember()]
public void HighlightEditsForCode(object xml)
{
//Do Stuff
}
我有一个可编写脚本的成员函数。我从这个函数中抛出一个异常。
它不会触发application.UnhandledException事件......
必须处理此事件...如何防止这种情况并调用unhandledexception事件?
或者至少避免我的应用程序崩溃并显示javascript错误?
答案 0 :(得分:1)
您无法真正阻止此行为,错误不会从.NET透视图中“未处理”。在Javascript和.NET之间的边界将有一个错误处理程序,这里.NET错误被“处理”,因为它被转换为Javascript错误。然后在脚本引擎中抛出此javascript错误。
解决此问题的唯一方法是始终在标记为ScriptableMember
的任何内容中包含try..catch处理程序。如果还从.NET代码调用了这样的成员,那么创建代理成员只是为了通过脚本调用。例如: -
[ScriptableMember(ScriptAlias="HighlightEditsForCode")]
public void HighlightEditsForCodeScript(object xml)
{
try
{
HighlightEditsForCode(object xml);
}
catch(e)
{
CallSomeEquivalentToUnhandledError(e);
}
}
public void HighlightEditsForCode(object xml)
{
// Do Stuff
}