Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer bestselgerne feil feil i MVVMCROSS


Hvordan håndterer bestselgerne feil feil i MVVMCROSS


Bestselgere -prøven i MVVMCROSS håndterer feil ved bruk av to primære teknikker:

1. BaseviewModel -klasser for delt feilhåndtering: Bestselgere -prøven bruker en `BaseviewModel` -klasse for å innkapsling av delt kode, inkludert feilhåndteringsmekanismer. Denne tilnærmingen muliggjør sentralisert styring av felles feilhåndteringslogikk på tvers av forskjellige visningsmodeller. For eksempel er metoden `GeneralAsyncLoad` definert i` BaseviewModel` og brukes av forskjellige visningsmodeller for å laste inn data asynkront. Denne metoden kan omfatte feilhåndteringslogikk som deles på tvers av applikasjonen.

2. Feilruter på appnivå: Prøven bruker også en "feilruter på appnivå for å administrere hvordan feil blir forplantet fra visningsmodeller til brukergrensesnittet. Dette innebærer å bruke et injisert objekt, typisk en `ierrorreporter`, som initialiseres som en singleton under appkonstruksjon. Hver plattformspesifikke UI-prosjekt abonnerer på hendelser fra denne singletonen ved å bruke et `ierrorsource`-grensesnitt. Dette oppsettet muliggjør plattformspesifikke feilvisningsmekanismer for feil, for eksempel UialertViews på iOS eller toasts på Android, slik at hver plattform kan håndtere feil på en måte som er hjemmehørende i miljøet.

I praksis, når en feil oppstår under en asynkron operasjon, for eksempel lasting av data fra en webtjeneste, blir feilen fanget og rapportert ved å bruke `ierrorreporter`. Dette gjør at applikasjonen kan vise brukervennlige feilmeldinger eller ta alternative tiltak som å prøve på nytt eller laste inn offline data.

For eksempel, hvis en `kategoriListViewModel` møter en feil mens du laster inn kategorier, kan den bruke` GeneralAyncload` -metoden fra `BaseviewModel` for å håndtere feilen. Feilen rapporteres deretter gjennom `Ierrorreporter`, som utløser den aktuelle UI -varslingen basert på plattformen.

Denne tilnærmingen sikrer at feilhåndtering er både sentralisert og fleksibel, noe som gir enkel tilpasning til forskjellige plattformer og scenarier i MVVMCROSS -rammen.

Sitasjoner:
[1] http://slodge.blogspot.com/2012/05/one-pattern-for-ror-handling-in.html
[2] https://leaware.com/creating-cross-platform-xamarin-applications-sing-the-mvvmcross-ramwork/
[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-sugested-way-to-handle-exceptions-during-in-a-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-ractices-handling-rors
[8] https://stackoverflow.com/questions/15697523/running-sample-projects-in-mvvmcross-v3-hot-tuna
[9] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx