Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer de bestsellers prøvefejl i MVVMCross


Hvordan håndterer de bestsellers prøvefejl i MVVMCross


Bestsellers -prøven i MVVMCROSS håndterer fejl ved hjælp af to primære teknikker:

1. BaseviewModel -klasser til håndtering af delt fejl: Bestsellers -prøven bruger en `BaseviewModel` -klasse til at indkapsle delt kode, herunder fejlhåndteringsmekanismer. Denne tilgang muliggør centraliseret styring af almindelig fejlhåndtering af logik på tværs af forskellige synsmodeller. F.eks. Er den `GeneralAsyncload '-metoden defineret i` BaseviewModel' og bruges af forskellige visningsmodeller til at indlæse data asynkront. Denne metode kan omfatte fejlhåndteringslogik, der deles på tværs af applikationen.

2.. Fejlrouter på appniveau: Prøven anvender også en appniveau "Fejlrouter" til at styre, hvordan fejl udbredes fra VIEW-modeller til brugergrænsefladen. Dette involverer at bruge et injiceret objekt, typisk en `Ierrorreporter ', der initialiseres som en singleton under appkonstruktion. Hver platformspecifikke UI-projekt abonnerer på begivenheder fra denne singleton ved hjælp af en `Ierrorsource '-grænseflade. Denne opsætning muliggør platformspecifikke fejlvisningsmekanismer, såsom UialertViews på iOS eller toasts på Android, hvilket giver hver platform mulighed for at håndtere fejl på en måde, der er hjemmehørende i dets miljø.

I praksis, når der opstår en fejl under en asynkron operation, såsom indlæsning af data fra en webtjeneste, fanges fejlen og rapporteres ved hjælp af `ierrorreporter '. Dette gør det muligt for applikationen at vise brugervenlige fejlmeddelelser eller tage alternative handlinger som at prøve igen for at prøve operationen eller indlæse offline-data.

For eksempel, hvis en `kategoryListViewModel 'møder en fejl under indlæsning af kategorier, kan den bruge metoden' GeneralAsyncload 'fra' BaseviewModel 'til at håndtere fejlen. Fejlen rapporteres derefter gennem `Ierrorreporter ', der udløser den relevante UI -meddelelse baseret på platformen.

Denne tilgang sikrer, at fejlhåndtering er både centraliseret og fleksibel, hvilket muliggør let tilpasning til forskellige platforme og scenarier inden for MVVMCROSS -rammen.

Citater:
)
)
[3] https://asktom.oracle.com/ords/f?p=100%3A11%3A%3A%3A%3A%3AP11_Question_ID%3A1422998100346727312
)
[5] https://github.com/mvvmcross/mvvmcross-sample/blob/master/oldsmles/bestsellers/bestsellers.touch/appdelegat.cs
[6] https://discourse.getdbt.com/t/how-to-drandle-test-failures/3824
[7] https://www.telerik.com/blogs/blazor-best-practices-shandling-rins
[8] https://stackoverflow.com/questions/15697523/running-project-projects-in-mvvmcross-v3-hot-tuna
[9] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx