Vzorka bestsellerov v MVVMCross spracuje chyby pomocou dvoch primárnych techník:
1. Triedy BaseViewModel pre zdieľané spracovanie chýb: Vzorka bestsellerov využíva triedu „BaseViewModel“ na zapuzdrenie zdieľaného kódu vrátane mechanizmov spracovania chýb. Tento prístup umožňuje centralizované riadenie bežnej logiky zaobchádzania s chybami v rôznych modeloch pohľadu. Napríklad metóda „GeneralasynCload` je definovaná v` BaseViewModel` a používa ju rôzne zobrazovacie modely na načítanie údajov asynchrónne. Táto metóda môže obsahovať logiku spracovania chýb, ktorá je zdieľaná v celej aplikácii.
2. Router na na úrovni aplikácie: Vzorka tiež využíva smerovač na úrovni aplikácie na správu, ako sa chyby šíria z zobrazovacích modelov do používateľského rozhrania. Zahŕňa to použitie vstrekovaného objektu, zvyčajne `Ierrorreporter`, ktorý je inicializovaný ako singleton počas konštrukcie aplikácií. Každý projekt UI špecifický pre platformu sa prihlási k udalostiam z tohto singletonu pomocou rozhrania „Ierrorsource“. Toto nastavenie umožňuje mechanizmy displeja špecifických pre platformu, ako sú napríklad UiaLertViews na iOS alebo toastoch v systéme Android, čo umožňuje každej platforme spracovať chyby spôsobom, ktorý je natívny pre jeho prostredie.
V praxi, keď dôjde k chybe počas asynchrónnej operácie, ako je napríklad načítanie údajov z webovej služby, chyba sa chytí a nahlási pomocou `ierrorreporter`. To umožňuje aplikácii zobrazovať užívateľsky prívetivé chybové správy alebo podniknúť alternatívne akcie, ako je opakovanie operácie alebo načítanie údajov offline.
Napríklad, ak sa v kategóriách „CategoryListViewModel` pri načítaní kategórií narazí na chybu, na spracovanie chyby môže použiť metódu` geatherasyncload` z `baseViewModel`. Chyba sa potom nahlási prostredníctvom `Ierrorreporter`, ktorý spúšťa príslušné oznámenie používateľského rozhrania na základe platformy.
Tento prístup zaisťuje, že manipulácia s chybami je centralizovaná aj flexibilná, čo umožňuje ľahké prispôsobenie sa rôznym platformám a scenárom v rámci MVVMCross.
Citácie:[1] http://slodge.blogspot.com/2012/05/one-pattern-for-error-dingling-in.html
[2] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvvmcross-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-sugested-way-to-wandle-exceptions-during-in---mvvvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestsellers.touch/appdelegate.cs
[6] https://discourse.getdbt.com/t/how-to-wandle-test-failures/3824
[7] https://www.telerik.com/blogs/blazor-best-practices-andling-errors
[8] https://stackoverflow.com/questions/15697523/Running-sample-projects-in-mvvvmcross-v3-hot-tuna
[9] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx