You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/10-error-handling/1-try-catch/article.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -491,11 +491,11 @@ try {
491
491
492
492
بند `finally` اغلب زمانی استفاده میشود که ما انجام کاری را شروع میکنیم و میخواهیم با هر نتیجهای آن را به پایان برسانیم.
493
493
494
-
برای مثال، ما میخواهیم زمانی که یک تابع اعداد فیبوناچی `fib(n)` میگیرد را محاسبه کنیم. طبیعتا، ما میتوانیم قبل از اینکه اجرا شود محاسبه را آغاز کنیم و سپس آن تمام کنیم. اما اگر در حین فراخوانی تابع ارور ایجاد شود چه؟ به خصوص در کد پایین، پیادهسازی `fib(n)` به ازای اعداد منفی یا غیر صحیح یک ارور برمیگرداند.
494
+
برای مثال، ما میخواهیم زمانی که یک تابع اعداد فیبوناچی `fib(n)` میگیرد را محاسبه کنیم. طبیعتا، ما میتوانیم قبل از اینکه اجرا شود اندازهگیری را آغاز کنیم و سپس آن را تمام کنیم. اما اگر در حین فراخوانی تابع ارور ایجاد شود چه؟ به خصوص در کد پایین، پیادهسازی `fib(n)` به ازای اعداد منفی یا غیر صحیح یک ارور برمیگرداند.
495
495
496
-
بند `finally` مکانی عالی برای اتمام محاسبات است؛ هر چه میخواهد رخ دهد.
496
+
بند `finally` مکانی عالی برای اتمام اندازهگیریها است؛ هر چه میخواهد رخ دهد.
497
497
498
-
اینجا `finally` تضمین میکند که زمان در هر دو وضعیت به درستی محاسبه میشود -- در وضعیتی که اجرای `fib` موفقیتآمیز باشد و در وضعیتی که اروری درون آن باشد:
498
+
اینجا `finally` تضمین میکند که زمان در هر دو وضعیت به درستی اندازهگیری میشود -- در وضعیتی که اجرای `fib` موفقیتآمیز باشد و در وضعیتی که اروری درون آن باشد:
شما میتوانید با اجرای کد بالا همراه با وارد کردن `35` درون `prompt` بررسی کنید -- کد به صورت معمولی اجرا میشود، `finally` بعد از `try`. سپس `1-` را وارد کنید -- بلافاصله ارور ایجاد میشود و اجرای کد `0ms` طول میکشد. هر دو محاسبه به درستی انجام شدهاند.
529
+
شما میتوانید با اجرای کد بالا همراه با وارد کردن `35` درون `prompt` بررسی کنید -- کد به صورت معمولی اجرا میشود، `finally` بعد از `try`. سپس `1-` را وارد کنید -- بلافاصله ارور ایجاد میشود و اجرای کد `0ms` طول میکشد. هر دو اندازهگیری به درستی انجام شدهاند.
530
530
531
531
به عبارتی دیگر، تابع میتواند با `return` یا `throw` به اتمام برسد، این موضوع مهم نیست. بند `finally` در هر دو مورد اجرا میشود.
0 commit comments