Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Cum se ocupă cei mai bine vândut erori în mvvmcross


Cum se ocupă cei mai bine vândut erori în mvvmcross


Eșantionul Bestsellers din MVVMcross gestionează erori folosind două tehnici primare:

.. Această abordare permite gestionarea centralizată a logicii comune de gestionare a erorilor pe diferite modele de vizualizare. De exemplu, metoda `GeneralAsyncload` este definită în„ BaseViewModel ”și este utilizată de diverse modele de vizualizare pentru a încărca datele asincron. Această metodă poate include logica de gestionare a erorilor care este partajată în întreaga aplicație.

2. Router de eroare la nivel de aplicație: eșantionul folosește, de asemenea, un „router de eroare” la nivel de aplicație pentru a gestiona modul în care erorile sunt propagate de la modelele de vizualizare la interfața de utilizator. Aceasta implică utilizarea unui obiect injectat, de obicei un „Ierrorreporter”, care este inițializat ca un singleton în timpul construcției aplicațiilor. Fiecare proiect UI specific platformei se abonează la evenimente din acest singleton folosind o interfață „ierrorSource`. Această configurație permite mecanisme de afișare a erorilor specifice platformei, cum ar fi uialertViews pe iOS sau toast-uri pe Android, permițând fiecărei platforme să gestioneze erorile într-un mod care este nativ din mediul său.

În practică, atunci când apare o eroare în timpul unei operații asincrone, cum ar fi încărcarea datelor de la un serviciu web, eroarea este prinsă și raportată folosind `ierrorreporter`. Acest lucru permite aplicației să afișeze mesaje de eroare ușor de utilizat sau să întreprindă acțiuni alternative precum reîncărcarea operației sau încărcarea datelor offline.

De exemplu, dacă un `CategoryListViewModel` întâlnește o eroare în timpul încărcării categoriilor, poate utiliza metoda` GeneralAsyncload` din `BaseViewModel` pentru a gestiona eroarea. Eroarea este apoi raportată prin „IerRorreporter”, care declanșează notificarea UI corespunzătoare pe baza platformei.

Această abordare asigură că gestionarea erorilor este atât centralizată, cât și flexibilă, permițând o adaptare ușoară la diferite platforme și scenarii din cadrul MVVMcross.

Citări:
[1] http://slodge.blogspot.com/2012/05/one-pattern-for-error-handling-in.html
[2] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvmcross-framework/
[3] https://asktom.oracle.com/ords/f?p=100%3A11%3A%3A%3A%3A%3AP11_Question_ID%3A1422998100346727312
[4] https://stackoverflow.com/questions/10411352/what-is-the-suggested-way-to-handle-exceptions-ding-in-mvvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/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-preractices-manipling-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