خیلی خب.
توی ویدیوی قبلی درباره‌ی try، catch و finally صحبت کردیم و مثالی از if، else if و else زدم.
حالا شاید برات سوال بشه که چرا اصلاً از try و catch استفاده کنیم وقتی می‌تونیم مطمئن بشیم که هیچ‌کدوم از این مشکلات
اصلاً پیش نمیاد؟
یعنی هیچ استثنایی رخ نمی‌ده.
خب، واقعیت اینه که تا یه حدی می‌تونی این کار رو انجام بدی، ولی از یه جایی به بعد دیگه نمی‌تونی کنترلش کنی.
مثلاً می‌تونی بررسی کنی
که آیا اتصال برقرار هست یا نه.
می‌تونی چک کنی
که آیا ورودی کاربر درسته؟
آیا فرمتش درسته؟
آیا عدد توی بازه‌ی مجاز هست؟
و کلی چیز دیگه. می‌تونی خیلی دقیق و عمیق بررسی کنی.
ولی یه جایی ممکنه شرایطی پیش بیاد
که دیگه استثناهایی رخ بدن که واقعاً نمی‌تونی مدیریتشون کنی.
یعنی تو روی یه سری چیزها مثل ورودی کاربر یا کیفیت اتصال کنترل داری،
ولی از یه جایی به بعد
دیگه کنترل کامل نداری. مثلاً نمی‌تونی کنترل کنی که کاربر چطور از گوشی یا کامپیوترش استفاده می‌کنه.
یا مثلاً
نمی‌تونی کنترل کنی که اتصال اینترنت کاربر چطوره.
یا اینکه کاربر به‌صورت اتفاقی فلش مموری‌ای که داشتی ازش دیتا می‌خوندی رو بکشه بیرون.
خب، توی این جور مواقع
استفاده از try و catch انتخاب بهتریه.
البته، وقتی می‌تونی خطاها رو پیش‌بینی کنی یا از وقوعشون جلوگیری کنی،
اون‌وقت بهتره از if و else استفاده کنی یا از ساختارهای کنترل جریان برای مدیریت روند اجرای برنامه‌ات استفاده کنی.
یعنی اینکه چطور کاربر داده وارد می‌کنه، چطور اپلیکیشن اجرا می‌شه، چطور نرم‌افزاری که ساختی کار می‌کنه.
پس یه قانون کلی اینه:
هر وقت می‌تونی نتیجه یا داده یا جریان رو کنترل کنی، از if و else if و else استفاده کن.
ولی اگه نمی‌تونی کنترلش کنی، از try و catch استفاده کن.
یه نکته‌ی دیگه هم هست.
استفاده از try و catch
از نظر زمان اجرا خیلی کندتر از if هست، پس اینم در نظر داشته باش وقتی داری کدت رو می‌نویسی.