Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak bestsellery vzorkují chyby v mvvmcross


Jak bestsellery vzorkují chyby v mvvmcross


Vzorek bestsellerů v MVVMCross zpracovává chyby pomocí dvou primárních technik:

1. třídy BaseViewModel pro zpracování sdílených chyb: Vzorek bestsellerů využívá třídu „BaseViewModel“ k zapouzdření sdíleného kódu, včetně mechanismů zpracování chyb. Tento přístup umožňuje centralizovanou správu běžné logiky zpracování chyb v různých modelech pohledu. Například metoda „GeneralSyncload“ je definována v `baseViewModel` a je používána různými modely pohledu k načtení dat asynchronně. Tato metoda může zahrnovat logiku zpracování chyb, která je sdílena napříč aplikací.

2. Směrovač chyby na úrovni aplikace: Vzorek také používá „chybový router“ na úrovni aplikace, aby zvládl, jak se chyby šíří z modelů pohledu na uživatelské rozhraní. To zahrnuje použití injektovaného objektu, obvykle `ierroreporter`, který je inicializován jako singleton během konstrukce aplikace. Každý projekt UI specifický pro platformu se přihlásí k odběru událostí z tohoto singletonu pomocí rozhraní „ierrorsource“. Toto nastavení umožňuje mechanismy zobrazení chyb specifických pro platformu, jako jsou UIALLETVIEWS na iOS nebo TOASTS na Androidu, což umožňuje každé platformě zpracovávat chyby způsobem, který je původem z jeho prostředí.

V praxi, když dojde k chybě během asynchronního provozu, jako je například načítání dat z webové služby, je chyba chycena a hlášena pomocí „ierroreporter“. To umožňuje aplikaci zobrazit chybové zprávy uživatelsky přívětivé nebo podniknout alternativní akce, jako je opakování operace nebo načítání offline dat.

Pokud například, pokud „kategorieListViewModel“ narazí na chybu při načítání kategorií, může k zvládání chyby použít metodu `GeneralSynCload` z` baseViewModel`. Chyba je poté hlášena prostřednictvím „ierrorReporter“, která spustí příslušné oznámení UI založené na platformě.

Tento přístup zajišťuje, že zpracování chyb je centralizované i flexibilní, což umožňuje snadnou přizpůsobení různým platformám a scénářům v rámci MVVMCross.

Citace:
[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-mvvmcross-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-During-in-a-mvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestsellers.touch/appdelegate.cs
[6] https://discourse.getdbt.com/t/how-to-handletest-failures/3824
[7] https://www.telerik.com/blogs/blazor-best-pactices-anding-errors
[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