【发布时间】:2014-11-25 04:36:30
【问题描述】:
我在网上爬了很长时间,希望有一个解决方案,我遇到了很多答案,但似乎都没有达到我想要的。
我正在尝试在不导致应用崩溃的情况下处理异常。与其简单地退出应用程序,我更愿意捕获异常,向用户显示更用户友好的错误(可能是消息框警告)并允许他们继续在应用程序中操作。
是否可以阻止应用程序退出?
我目前试图捕捉到的方式如下:
public class Login : Activity
{
int count = 1;
Session mySession;
protected override void OnCreate(Bundle bundle)
{
AndroidEnvironment.UnhandledExceptionRaiser += HandleAndroidException;
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Login);
Button button = FindViewById<Button>(Resource.Id.Login);
string accountCode = Resource.Id.AccountCode.ToString();
string password = Resource.Id.Password.ToString();
// button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
button.Click += delegate
{
throw new Exception("LETS THROW A RANDOM EXCEPTION");
};
}
void HandleAndroidException(object sender, RaiseThrowableEventArgs e)
{
Log.Error("INTERNAL DEBUG", "PLEASE HANDLE MY EXCEPTION!");
e.Handled = true;
System.Console.Write("YOU'VE JUST BEEN HANDLED!");
}
}
如您所见,我抛出了一个一般异常并尝试使用 UnhandledExceptionRaiser 捕获它。我以此为参考:http://androidapi.xamarin.com/index.aspx?link=E%3AAndroid.Runtime.AndroidEnvironment.UnhandledExceptionRaiser
我可以在“Android 设备日志记录”工具中找到我的消息,但是它是在发生未处理的异常错误后触发的。我认为这意味着 Xamarin 内部的某些东西首先遇到了异常并摔倒了。肯定有办法阻止这种情况吗??
我在网上看到了无数例子,人们一直在问类似的问题,但一直没有明确的解决方案。有些人提供了一些解决方案,但实际上并没有达到我的预期。
如果不能做到这一点,我真的很难以置信。
这是我第一次使用 Xamarin,也是我第一次开发移动应用程序,如果我对任何事情一无所知,我深表歉意。
请帮忙!!!
【问题讨论】:
标签: c# android mobile mono xamarin