Android,Xamarin:抓住随机异常:

时间:2018-05-01 15:59:59

标签: c# android

我有一个问题 - 偶尔我的应用程序在这里崩溃:

    public override void OnWindowFocusChanged(Boolean hasFocus)
    {
        base.OnWindowFocusChanged(hasFocus);

        if(intInstanz == 1 && boolTutorialWasAlreadyVisible == false)
        { 
            new FancyShowCaseView.Builder(this) // if this crashes, we need clean rebuild
                .Title(Resources.GetString(Resource.String.Tutorial1))
                .TitleStyle(0, (int)GravityFlags.Bottom | (int)GravityFlags.Center)
                .FocusOn(btnBackground)
                .Build()
                .Show();

            boolTutorialWasAlreadyVisible = true;
        }
    }

它工作,工作和工作然后突然。这可以通过清理项目来解决。但是,有时甚至会在发布的版本上发生这种情况。这是一个大问题。 FancyShowCaseView是一个额外的组件 - 我无法控制它的作用。那么有没有一种方法可以在这里发生崩溃,如果它只是发生了'#34;跳过"演出();可能?

这非常重要。谢谢!

1 个答案:

答案 0 :(得分:1)

关于try catch语句的简短说明是,如果try部分中的语句无法执行,代码将跳转到catch部分并执行其中的内容,可能会显示对话框出错或记录异常。 FancyShowCaseView控件的特定例外情况可能会在组件的文档中描述,但对于初学者,您可以使用Exception类作为:

try 
{
    new FancyShowCaseView.Builder(this) // if this crashes, we need clean rebuild
            .Title(Resources.GetString(Resource.String.Tutorial1))
            .TitleStyle(0, (int)GravityFlags.Bottom | (int)GravityFlags.Center)
            .FocusOn(btnBackground)
            .Build()
            .Show();
}
catch (Exception ex)
{
     //log or show message
}    

最后,您可能希望对组件失败而没有恢复的原因进行小规模研究。 ex对象应该为您提供有关错误的信息。