ورود

View Full Version : stack unwinding چیه و چه کاربردی دارد ؟



arminbadakh
دوشنبه 15 اردیبهشت 1393, 06:39 صبح
سلام من دارم از طریق یک کتاب به زبان اصلی جاوا رو یا میگیرم ولی هر کاری می کنم مفهوم stack unwinding رو در مبحث استثنا ها متوجه نمیشم و خوب نمیتونم ترجمه ش کنم

cups_of_java
دوشنبه 15 اردیبهشت 1393, 08:08 صبح
وقتی تابع A تابع B و اونم تابع C رو فراخوانی کرده و توی C یک خطا رخ میده، ادامه اجرای کد متوقف میشه و اگر C اون رو هندل نکرده باشه طبیعتن کد باید به فراخوانی بالاتر برگرده و ...
همونطور که می دونید هر تابع توی استک فریم خودش رو داره که شامل پارامترها و متغیر های لوکالش میشه. حالا وقتی با رخ دادن خطا برنامه باید به فراخوانی های قبلی برگرده بدون اینکه تابع کامل به انتها رسیده باشه و return کرده باشه. سیستم به طور اتوماتیک موظف هست که فریم های اون توابع رو دونه دونه از استک پاک کنه انگار که اصلن فراخوانی نشده بودن. به این کار Stack Unwinding میگن.

arminbadakh
دوشنبه 15 اردیبهشت 1393, 09:29 صبح
وقتی تابع A تابع B و اونم تابع C رو فراخوانی کرده و توی C یک خطا رخ میده، ادامه اجرای کد متوقف میشه و اگر C اون رو هندل نکرده باشه طبیعتن کد باید به فراخوانی بالاتر برگرده و ...
همونطور که می دونید هر تابع توی استک فریم خودش رو داره که شامل پارامترها و متغیر های لوکالش میشه. حالا وقتی با رخ دادن خطا برنامه باید به فراخوانی های قبلی برگرده بدون اینکه تابع کامل به انتها رسیده باشه و return کرده باشه. سیستم به طور اتوماتیک موظف هست که فریم های اون توابع رو دونه دونه از استک پاک کنه انگار که اصلن فراخوانی نشده بودن. به این کار Stack Unwinding میگن.

ممنون از توضیحتون :قلب:

vahid-p
دوشنبه 15 اردیبهشت 1393, 11:58 صبح
ممنون از توضیحتون :قلب:
کلید "تشکر" یادتون نره. :لبخند: