代码之家  ›  专栏  ›  技术社区  ›  Xander

异常和Scriptablemember

  •  0
  • Xander  · 技术社区  · 16 年前
    [ScriptableMember()]
    public void HighlightEditsForCode(object xml)
    {
      //Do Stuff
    }
    

    我有一个脚本成员函数。我从这个函数中抛出一个异常。

    它不会触发application.UnhandledException未处理异常事件。。。

    或者至少可以避免我的应用程序崩溃并显示javascript错误?

    1 回复  |  直到 16 年前
        1
  •  1
  •   AnthonyWJones    16 年前

    您无法真正阻止这种行为,从.NET的角度来看,错误不会“未经处理”。在Javascript和.NET之间的边界将有一个错误处理程序,在这里.NET错误被“处理”为Javascript错误。这个javascript错误随后被抛出到脚本引擎中。

    唯一的解决方法是在标记为 ScriptableMember . 如果这样一个成员也是从.NET代码中调用的,那么就创建一个代理成员,只由脚本调用。示例:-

    [ScriptableMember(ScriptAlias="HighlightEditsForCode")]
    public void HighlightEditsForCodeScript(object xml)
    {
      try
      {
        HighlightEditsForCode(object xml);
      }
      catch(e)
      {
        CallSomeEquivalentToUnhandledError(e);
      }
    }
    
    public void HighlightEditsForCode(object xml)
    {
      // Do Stuff
    }