Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon In che modo i bestseller campionano errori di maneggevole in mvvmcross


In che modo i bestseller campionano errori di maneggevole in mvvmcross


Il campione di bestseller in mvvmcross gestisce errori usando due tecniche primarie:

1. Classi BaseViewModel per la gestione degli errori condivisi: il campione di bestseller utilizza una classe `BaseViewModel` per incapsulare il codice condiviso, compresi i meccanismi di gestione degli errori. Questo approccio consente la gestione centralizzata della logica di gestione degli errori comuni su diversi modelli di vista. Ad esempio, il metodo `GenerasynCload` è definito in` BaseViewModel` ed è utilizzato da vari modelli di visualizzazione per caricare i dati in modo asincrono. Questo metodo può includere la logica di gestione degli errori condivisi attraverso l'applicazione.

2. Router di errore a livello di app: il campione utilizza anche un "router di errore" a livello di app per gestire il modo in cui gli errori vengono propagati dai modelli di visualizzazione all'interfaccia utente. Ciò comporta l'uso di un oggetto iniettato, in genere un "Ierrorreporter", che viene inizializzato come singleton durante la costruzione di app. Ogni progetto dell'interfaccia utente specifico per la piattaforma si iscrisse agli eventi di questo singleton utilizzando un'interfaccia `` ierrorsource`. Questa configurazione abilita i meccanismi di visualizzazione degli errori specifici della piattaforma, come UallertViews su iOS o brindisi su Android, consentendo a ciascuna piattaforma di gestire errori in un modo nativo del suo ambiente.

In pratica, quando si verifica un errore durante un'operazione asincrona, come il caricamento dei dati da un servizio Web, l'errore viene catturato e riportato utilizzando "Ierrorreporter". Ciò consente all'applicazione di visualizzare messaggi di errore intuitivi o intraprendere azioni alternative come il tentativo dell'operazione o il caricamento di dati offline.

Ad esempio, se una `categoryListViewModel` incontra un errore durante il caricamento delle categorie, può utilizzare il metodo` GeneraSynCload` dal `BaseViewModel` per gestire l'errore. L'errore viene quindi riportato tramite "Ierrorreporter", che innesca la notifica dell'interfaccia utente appropriata in base alla piattaforma.

Questo approccio garantisce che la gestione degli errori sia centralizzata e flessibile, consentendo un facile adattamento a diverse piattaforme e scenari all'interno del framework MVVMCRoss.

Citazioni:
[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-mvvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestellers.touch/appdelegate.cs
[6] https://discourse.getdbt.com/t/how-to-handle-test-failures/3824
[7] https://www.telerik.com/blogs/blazor-best-practices-handling-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