Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Comment les best-sellers échantillonnent-ils les erreurs de gestion dans MVVMCROSS


Comment les best-sellers échantillonnent-ils les erreurs de gestion dans MVVMCROSS


L'échantillon des best-sellers dans MVVMCross gère les erreurs en utilisant deux techniques principales:

1. Classes BaseViewModel pour la gestion des erreurs partagées: l'échantillon des best-sellers utilise une classe `BaseViewModel 'pour encapsuler le code partagé, y compris les mécanismes de gestion des erreurs. Cette approche permet la gestion centralisée de la logique de gestion des erreurs courante sur différents modèles de vue. Par exemple, la méthode `GeneralAsyncload» est définie dans `BaseViewModel 'et est utilisée par divers modèles de vue pour charger des données de manière asynchrone. Cette méthode peut inclure la logique de gestion des erreurs partagée sur l'application.

2. Routeur d'erreur au niveau de l'application: l'échantillon utilise également un "routeur d'erreur" au niveau de l'application pour gérer la façon dont les erreurs se propagent des modèles de vue à l'interface utilisateur. Cela implique d'utiliser un objet injecté, généralement un «ierrorreporter», qui est initialisé en singleton lors de la construction d'applications. Chaque projet d'interface utilisateur spécifique à la plate-forme s'abonne aux événements de ce singleton à l'aide d'une interface «ierrorce». Cette configuration permet des mécanismes d'affichage d'erreur spécifiques à la plate-forme, tels que UiaLertViews sur iOS ou des toasts sur Android, permettant à chaque plate-forme de gérer les erreurs d'une manière originaire de son environnement.

En pratique, lorsqu'une erreur se produit pendant une opération asynchrone, comme le chargement des données d'un service Web, l'erreur est capturée et signalée en utilisant le `ierrorreporter». Cela permet à l'application d'afficher des messages d'erreur conviviaux ou de prendre des actions alternatives telles que la réessayer l'opération ou le chargement de données hors ligne.

Par exemple, si un `catégorieListViewModel` rencontre une erreur lors du chargement des catégories, il peut utiliser la méthode` GeneralAsyncload 'de la `BaseViewModel' pour gérer l'erreur. L'erreur est ensuite signalée via `ierrorreporter ', qui déclenche la notification d'interface utilisateur appropriée basée sur la plate-forme.

Cette approche garantit que la gestion des erreurs est à la fois centralisée et flexible, permettant une adaptation facile à différentes plates-formes et scénarios dans le cadre MVVMCross.

Citations:
[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-suggest-way-to-handle-exceptions-during-in-a-mvvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestsellers.touch/appdegate.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