trả lời của tôi là NO
Tại sao?
Có một điều quan trọng bạn phải hiểu về bản chất của một ngoại lệ Unhandled trong Android, không có một .... trong Android nó là một ngoại lệ của router có nghĩa là bạn không thể "xử lý "nó hoặc khôi phục từ nó như bạn có thể sẽ ở trong một môi trường .Net.
Xamarin (Mono) trong nội bộ "xử lý" những ngoại lệ không bị bắt đó theo số bao quanh tất cả mọi thứ theo nghĩa đen với try-catch và tăng Sự kiện chưa xử lý nhưng đó là ngoài điểm. Nó cũng được khuyến khích để tương tác với giao diện người dùng cũng như vì nhiều lý do khác nhau.
Về mặt lý thuyết có một số cách giải quyết "" để hiển thị hộp thoại cho người dùng hoặc khởi động lại ứng dụng, không có điều nào tôi khuyên bạn nên làm theo số .Thay vào đó bạn nên bao quanh khu vực nhạy cảm với try-catch khoản để xử lý ngoại lệ mong đợi, như đối với việc phân tích các trường hợp ngoại lệ báo cáo một trong những bất ngờ của chỉ cần sử dụng một bộ phận báo cáo ngoại lệ và cập nhật ứng dụng của bạn sau khi
Explation From
bạn cũng có thể bắt ngoại lệ unhadled từ ứng dụng giống như này
Tạo một hoạt động cơ sở như tên ErrorActivity
xem ví dụ này
protected override void OnCreate(Bundle bundle)
{
//register error handlers
AppDomain.CurrentDomain.UnhandledException += ErrorHandler.CurrentDomainOnUnhandledException;
TaskScheduler.UnobservedTaskException += ErrorHandler.TaskSchedulerOnUnobservedTaskException;
}
Trong lớp xử lý lỗi
public static class ErrorHandler
{
/// <summary>
/// Tasks the scheduler on unobserved task exception.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="unobservedTaskExceptionEventArgs">
/// The <see cref="UnobservedTaskExceptionEventArgs" /> instance containing
/// the event data.
/// </param>
public static void TaskSchedulerOnUnobservedTaskException(object sender,
UnobservedTaskExceptionEventArgs unobservedTaskExceptionEventArgs)
{
var newExc = new Exception("TaskSchedulerOnUnobservedTaskException",
unobservedTaskExceptionEventArgs.Exception);
LogUnhandledException(newExc);
}
/// <summary>
/// Currents the domain on unhandled exception.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="unhandledExceptionEventArgs">
/// The <see cref="UnhandledExceptionEventArgs" /> instance containing the event
/// data.
/// </param>
public static void CurrentDomainOnUnhandledException(object sender,
UnhandledExceptionEventArgs unhandledExceptionEventArgs)
{
var newExc = new Exception("CurrentDomainOnUnhandledException",
unhandledExceptionEventArgs.ExceptionObject as Exception);
LogUnhandledException(newExc);
}
/// <summary>
/// Logs the unhandled exception.
/// </summary>
/// <param name="exception">The exception.</param>
internal static void LogUnhandledException(Exception exception)
{
try
{
string error =
$"Exception Caught:{DateTime.Now:F} The Error Message IS {exception.Message}\n\r full stack trace is {exception.ToString()} ";
#if DEBUG
const string errorFileName = "errorlog.txt";
var libraryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
// iOS: Environment.SpecialFolder.Resources
var errorFilePath = System.IO.Path.Combine(libraryPath, errorFileName);
System.IO.File.WriteAllText(errorFilePath, error);
Android.Util.Log.Error("Crash Report error not handled", ex.ToString());
#else
// Log to Android Device Logging.
Android.Util.Log.Error("Crash Report", error);
#endif
}
catch (Exception ex)
{
Android.Util.Log.Error("Crash Report error not handled", ex.ToString());
// just suppress any error logging exceptions
}
}
}
Bây giờ bạn có thể kế thừa toàn bộ các activitys từ ErrorActivity như thế này
Public class Fooactivity:ErrorActivity
{
}
Bây giờ bạn có thể xử lý lỗi trong ứng dụng..Bạn nhận được nhật ký lỗi từ nhật ký Tệp .. hoặc màn hình đăng nhập thiết bị android..Hy vọng điều này sẽ giúp ...
Nguồn
2015-09-24 07:19:51
Cảm ơn câu trả lời của bạn. Có lẽ tôi không đủ rõ ràng. Việc thực thi mã trong studio trực quan không phá vỡ, mà là một cửa sổ chuẩn được sử dụng để khám phá ngoại lệ mà tôi nhận được khi lập trình cho máy tính để bàn, cửa sổ chỉ chứa tên của ngoại lệ được ném, hộp kiểm để vô hiệu hóa ngắt mã khi loại này ngoại lệ được ném và các nút Break, Continue và Ignore. Nhưng tôi không thể khám phá ngoại lệ thực tế theo cách sẵn có khi lập trình cho máy tính để bàn. –
Tôi gặp vấn đề tương tự, bạn có giải quyết được sự cố không? – unarity