Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon En çok satanlar mvvmcross'ta hataları nasıl ele alıyor?


En çok satanlar mvvmcross'ta hataları nasıl ele alıyor?


MVVMCross'taki en çok satanlar örneği iki temel teknik kullanarak hataları işler:

1. Paylaşılan Hata İşlemesi için BaseViewModel Sınıfları: En çok satanlar örneği, hata işleme mekanizmaları da dahil olmak üzere paylaşılan kodu kapsüllemek için bir `BaseViewModel` sınıfı kullanır. Bu yaklaşım, farklı görünüm modellerinde ortak hata işleme mantığının merkezi yönetimine izin verir. Örneğin, `` GeneralAsyncload 'yöntemi' BaseViewModel '' de tanımlanır ve çeşitli görünüm modelleri tarafından verileri eşzamansız olarak yüklemek için kullanılır. Bu yöntem, uygulama arasında paylaşılan hata işleme mantığını içerebilir.

2. Uygulama düzeyinde hata yönlendiricisi: Örnek ayrıca, hataların görünüm modellerinden kullanıcı arayüzüne nasıl yayıldığını yönetmek için uygulama düzeyinde bir "hata yönlendirici" de kullanır. Bu, enjekte edilmiş bir nesnenin, tipik olarak uygulama yapımı sırasında singleton olarak başlatılan bir 'ierrorreporter' kullanmayı içerir. Her platforma özgü UI projesi, bir 'ierrorsource' arayüzü kullanarak bu singleton olaylarına abone olur. Bu kurulum, platforma özgü hata görüntüleme mekanizmalarını sağlar, örneğin iOS veya Android'deki tostlardaki UiAlertViews gibi her platformun hataları çevresine özgü bir şekilde ele almasına izin verir.

Uygulamada, bir web hizmetinden veri yükleme gibi eşzamansız bir işlem sırasında bir hata oluştuğunda, hata yakalanır ve `` ierrorreporter` kullanılarak bildirilir. Bu, uygulamanın kullanıcı dostu hata mesajlarını görüntülemesine veya işlemi yeniden denemek veya çevrimdışı verileri yüklemek gibi alternatif işlemler yapmasına olanak tanır.

Örneğin, bir `categoryListViewModel 'kategorileri yüklerken bir hatayla karşılaşırsa, hatayı işlemek için` `BaseViewModel' 'den` `GeneralAsyScload' yöntemini kullanabilir. Hata daha sonra platforma dayalı uygun UI bildirimini tetikleyen `` ierrorreporter '' aracılığıyla rapor edilir.

Bu yaklaşım, hata işlemesinin hem merkezi hem de esnek olmasını sağlar ve MVVMCross çerçevesi içindeki farklı platformlara ve senaryolara kolay uyum sağlamayı sağlar.

Alıntılar:
[1] http://slodge.blogspot.com/2012/05/one-ptersn-for-error-handling-in.html
[2] https://leaware.com/creating-cross-platform-xamarin-pplications-using-the-mvmcross-pramework/
[3] https://asktom.oracle.com/ords/f?p=100%3A11%3A%3A%3A%3A%3AP11_question_id%3A142298100346727312
[4] https://stackoverflow.com/questions/10411352/what-is-the-suggested-way-to-handle-exceptions-inating-in-in-mvmcross-ppleation
[5] https://github.com/mvvmcross/mvmcross-somples/blob/master/oldsamples/Bestsellers/Bestsellers.touch/appdelegate.cs
[6] https://discourse.getdbt.com/t/how-to-handle-test-failures/3824
[7] https://www.telerik.com/blogs/blazor-best-practices-handling-errors
[8] https://stackoverflow.com/questions/15697523/running-sample-projects-in-mvmcross-v3-hot-tuna
[9] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx