1
00:00.170 --> 00:00.620
خیلی خب.

2
00:00.620 --> 00:07.490
توی ویدیوی قبلی درباره‌ی try، catch و finally صحبت کردیم و مثالی از if، else if و else زدم.

3
00:07.520 --> 00:12.980
حالا شاید برات سوال بشه که چرا اصلاً از try و catch استفاده کنیم وقتی می‌تونیم مطمئن بشیم که هیچ‌کدوم از این مشکلات

4
00:12.980 --> 00:13.580
اصلاً پیش نمیاد؟

5
00:13.580 --> 00:16.100
یعنی هیچ استثنایی رخ نمی‌ده.

6
00:16.100 --> 00:22.280
خب، واقعیت اینه که تا یه حدی می‌تونی این کار رو انجام بدی، ولی از یه جایی به بعد دیگه نمی‌تونی کنترلش کنی.

7
00:22.280 --> 00:23.540
مثلاً می‌تونی بررسی کنی

8
00:23.540 --> 00:26.180
که آیا اتصال برقرار هست یا نه.

9
00:26.180 --> 00:28.790
می‌تونی چک کنی

10
00:28.790 --> 00:29.870
که آیا ورودی کاربر درسته؟

11
00:29.870 --> 00:33.110
آیا فرمتش درسته؟

12
00:33.110 --> 00:34.460
آیا عدد توی بازه‌ی مجاز هست؟

13
00:34.460 --> 00:39.500
و کلی چیز دیگه. می‌تونی خیلی دقیق و عمیق بررسی کنی.

14
00:39.500 --> 00:41.810
ولی یه جایی ممکنه شرایطی پیش بیاد

15
00:41.810 --> 00:49.250
که دیگه استثناهایی رخ بدن که واقعاً نمی‌تونی مدیریتشون کنی.

16
00:49.250 --> 00:58.550
یعنی تو روی یه سری چیزها مثل ورودی کاربر یا کیفیت اتصال کنترل داری،

17
00:58.550 --> 00:59.330
ولی از یه جایی به بعد

18
00:59.330 --> 01:06.320
دیگه کنترل کامل نداری. مثلاً نمی‌تونی کنترل کنی که کاربر چطور از گوشی یا کامپیوترش استفاده می‌کنه.

19
01:06.320 --> 01:07.550
یا مثلاً

20
01:07.550 --> 01:13.670
نمی‌تونی کنترل کنی که اتصال اینترنت کاربر چطوره.

21
01:13.670 --> 01:21.260
یا اینکه کاربر به‌صورت اتفاقی فلش مموری‌ای که داشتی ازش دیتا می‌خوندی رو بکشه بیرون.

22
01:21.260 --> 01:22.970
خب، توی این جور مواقع

23
01:23.000 --> 01:28.820
استفاده از try و catch انتخاب بهتریه.

24
01:28.820 --> 01:36.920
البته، وقتی می‌تونی خطاها رو پیش‌بینی کنی یا از وقوعشون جلوگیری کنی،

25
01:36.920 --> 01:47.030
اون‌وقت بهتره از if و else استفاده کنی یا از ساختارهای کنترل جریان برای مدیریت روند اجرای برنامه‌ات استفاده کنی.

26
01:47.030 --> 01:52.580
یعنی اینکه چطور کاربر داده وارد می‌کنه، چطور اپلیکیشن اجرا می‌شه، چطور نرم‌افزاری که ساختی کار می‌کنه.

27
01:52.580 --> 01:53.300
پس یه قانون کلی اینه:

28
01:53.300 --> 01:59.000
هر وقت می‌تونی نتیجه یا داده یا جریان رو کنترل کنی، از if و else if و else استفاده کن.

29
01:59.090 --> 02:04.940
ولی اگه نمی‌تونی کنترلش کنی، از try و catch استفاده کن.

30
02:04.940 --> 02:08.210
یه نکته‌ی دیگه هم هست.

31
02:08.210 --> 02:09.950
استفاده از try و catch

32
02:09.950 --> 02:19.460
از نظر زمان اجرا خیلی کندتر از if هست، پس اینم در نظر داشته باش وقتی داری کدت رو می‌نویسی.
