我有一个问题 - 偶尔我的应用程序在这里崩溃:
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;跳过"演出();可能?
这非常重要。谢谢!
答案 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
对象应该为您提供有关错误的信息。