استفاده از dartz برای ارور هندلینگ در فلاتر


به عنوان یه توسعه دهنده فلاتر تاحالا براتون پیش اومده خواسته باشید ارور ها داخل اپلیکیشن خودتون کنترل کنید و بعضی هاش به کاربر نشون بدین یا بخوایید در صورت رخداد اون ارور یه فانکشن دیگه رو صدا بزنید یا کار دگیه رو انجام بدید.

همونجوری که همه ما میدونیم برای انجام یه کار تو برنامه نویسی هزار تا روش هست، امروزمن میخوام بهتون بگم که چجوری از یه پکیج جالب به اسم dartz برای هندل کردن ارور ها استفاده کنید امیدوارم که براتون مفید واقع بشه.

خوب کارمون رو با اضافه کردن پکیج به پروژمون شروع میکنیم .

flutter pub add dartz

خوب برای ادامه کار نیاز داریم که یه مدل برای ارور هایی که بهشون بر میخوریم بسازیم این مدل هم معمولا چیز انچنانی هم نداره،بریم برای ساختن مدل ارور


قدم بعدی ما تایین مدل اصلی که ما ازش دیتا رو میگیرم و داخل سرتا سر اپلیکیشن استفاده میکنیم،اینجا دیگه مرتبط میشه به اپلکیشین خودتون و دیتا هایی که باهاش در ارتباط هستید. اینجا شما متناسب بادیتاهایی که میگیرید یک کلاس مدل میسازید.اینجا اسم کلاس مدل من Note هستش.

خوب تا اینجا ما تمامی موارد موردنیاز خودمون رو ساختیم، وقتشه که بریم سرغ اصل مطلب از این پکیج استفاده کنیم.خوب اینجا باید بگم که استفاده از این پکیج صرفا برای روش خاصی نیست و شما میتونید ازش برای ارتباط با سرور یا دیتابیس داخلی استفاده کنید .

برای استفاده از این پکیج شما در اول تایین مقدار برگشتی تابع خودتون که به صورت جنریک میدین باید از تایپ Either استفاده کنید ،زمانی که شما این تایپ رو بنویسید از شما میخواد که دوباره ۲ تا مقدار به صورت جنریک به خود این Either بدین که اولی باید مدل اروری که ساختیم رو بدین و دومی مدل کلاس اصلی مدل هستش به صورت زیر


خوب حالا اینجا شما باید کد های مربوط به عملیات مورد نظر خودتون بنویسید و مثل همیشه همونtry و catch قدیمی خودمون میزاریم . اینجا برای همه ما سوال پیش میاد خوب الان این فانکشن داره ۲ تا تایپ بر میگردونه از کجا بدونیم که کدوم باید کجا برگرده و ازشون استفاده کنیم ؟

صبر کنید ! نردبون پله پله

خوب فرض کنید که کد شما در قسمت try عملیات به صورت کامل اجرا شده و همچیز درست و شما میتونید مقدار اصلی مدل رو برگردونید و هیچ اروری نیست، برای برگردوندن مقدار برگشتی درست ما از Right استفاده میکنیم برای مقدار برگشتی ارور ما Left رو برمیگردونیم. حالا این right و left چی هستن ؟

دقت کنید که ما در جنریک اول Either ما مدل ارور رو دادیم و جنریک دوم مدل اپلیکیشن اگه دقت کنید میبینید که Left به معنی چپ اشاره به مدل ارور داره و right هم به مدل اصلی اشاره داره


خوب تا اینجا ما فانکشن رو با استفاده از dartz پیاده کردیم حالا وقت استفاده ازش داخل کد هامون رسید.

سوال بعدی که برامون پیش میاد اینه اقا چجوری میتونیم تشخیص بدیم که این فانکشن که صدا زدیم مقدار right برگردونده یاleft ??

خوب اول بیاید از این کدی که نوشتیم استفاده کنیم تا بعد بهتون نشون بدم چجوری ازش استفاده کنید.

خوب تا اینجا فقط ازش استفاده کردیم ،برای دریافت مقدار های برگشتی از این فانکشن ما از متد flod استفاده میکنیم. این متد زمانی بنویسید به شما به صورت پوزیشنال ۲ تا فانکشن با مقدار های برگشتی یکی مدل ارور و یکی مدل اصلی میده ، اگر فانکشنی که ما بالا صدا زدیم به ارور بخورد فانکشن برگشتی با مدل ارور صدا زده میشه و کد های داخل اون صدا زده میشه اگر هم مقدار برگشتی درست باشه (right) فانکشنی صدا زده میشه که مدل اصلی برمیگردونه و کد های داخل اون فانکشن صدا زده میشه .


خوب اینجا ما ارور ها رو هندل کردیم و خیلی شیک تونستیم اونها رو کنترل کنیم و از اینجا به بعدش به خودوتن بستگی داره که چجوری از مقدار های برگشتی استفاده کنید لذتش ببرید ، برای درک بیشتر از این پکیج و نحوه استفاده ازش بهتر چند بار مقاله رو بخونید و طبق مراحل پیش برید ازش نهایت لذت ببرید

خوب به پایان آمد این دفتر ولی مقاله های ابوالفضل همچنان ادامه داره.

امیدوارم براتون جذاب بوده باشه و مفید، اگر اینطور بوده یادتون نره مقاله رو لایک کنید و برای بقیه دوستاتون هم بفرستید تا اینجوری هم حمایتی از من کرده باشید .

دمتون گرم ،خدا نگهدار