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

Silverlight导航应用程序:如何在页面级别捕获异常?

  •  1
  • funwithcoding  · 技术社区  · 14 年前

    我们知道,使用application.current.unhandledexception可以在应用程序级别捕获任何意外异常。有什么方法可以在页面级别而不是应用程序级别捕获异常吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Josh    14 年前

    不是真的。页面实际上没有任何特定的执行范围。你可以在任何时候在一个给定的屏幕上有多个页面。但是在visual studio中的silverlight导航应用程序项目模板中,有一段非常愚蠢的代码隐藏了异常,并将它们变成无用的“导航失败”消息。

    这在frame.navigationfailed事件中,当 导航 到某一页。但不是后来发生的例外。如果要访问异常,它在事件args中。

    private void ContentFrame_NavigationFailed( object sender, NavigationFailedEventArgs e )
    {
    
        e.Handled = true;
    
        // the navigation template does this. useless
        //ChildWindow errorWin = new ErrorWindow( e.Uri );
    
        // this will show the exception
        ChildWindow errorWin = new ErrorWindow( e.Exception );
    
        errorWin.Show( );
    }