Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bagaimana cara terbaik sampel kesalahan menangani kesalahan di mvvmcross


Bagaimana cara terbaik sampel kesalahan menangani kesalahan di mvvmcross


Sampel terlaris di MVVMCross menangani kesalahan menggunakan dua teknik utama:

1. Kelas BaseviewModel untuk Penanganan Kesalahan Bersama: Sampel terbaik menggunakan kelas `BaseviewModel` untuk merangkum kode bersama, termasuk mekanisme penanganan kesalahan. Pendekatan ini memungkinkan untuk manajemen terpusat dari logika penanganan kesalahan umum di berbagai model tampilan. Misalnya, metode `GeneralSynCload` didefinisikan dalam` BaseviewModel` dan digunakan oleh berbagai model tampilan untuk memuat data secara tidak sinkron. Metode ini dapat mencakup logika penanganan kesalahan yang dibagikan di seluruh aplikasi.

2. Router kesalahan tingkat aplikasi: Sampel juga menggunakan "kesalahan router" tingkat aplikasi untuk mengelola bagaimana kesalahan disebarkan dari model tampilan ke antarmuka pengguna. Ini melibatkan penggunaan objek yang disuntikkan, biasanya `ierrorreporter`, yang diinisialisasi sebagai singleton selama konstruksi aplikasi. Setiap proyek UI khusus platform berlangganan acara dari singleton ini menggunakan antarmuka `IErrorSource`. Pengaturan ini memungkinkan mekanisme tampilan kesalahan spesifik platform, seperti UialerTViews di iOS atau bersulang di Android, memungkinkan setiap platform untuk menangani kesalahan dengan cara yang asli dari lingkungannya.

Dalam praktiknya, ketika kesalahan terjadi selama operasi asinkron, seperti memuat data dari layanan web, kesalahan ditangkap dan dilaporkan menggunakan `ierrorreporter`. Ini memungkinkan aplikasi untuk menampilkan pesan kesalahan yang ramah pengguna atau mengambil tindakan alternatif seperti mencoba lagi operasi atau memuat data offline.

Misalnya, jika `CategoryListViewModel` mengalami kesalahan saat memuat kategori, ia dapat menggunakan metode` GenerAenAsynCload` dari `BaseviewModel` untuk menangani kesalahan. Kesalahan kemudian dilaporkan melalui `iErreporter`, yang memicu pemberitahuan UI yang sesuai berdasarkan platform.

Pendekatan ini memastikan bahwa penanganan kesalahan terpusat dan fleksibel, memungkinkan adaptasi yang mudah untuk berbagai platform dan skenario dalam kerangka kerja MVVMCross.

Kutipan:
[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%3a14222998100346727312
[4] https://stackoverflow.com/questions/10411352/what-is-the-suggested-way-to-handle-exceptions-during-in--mvvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestsellers.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