ورود

View Full Version : سوال: سوال در رابطه با استثنا



lexical_error
چهارشنبه 19 تیر 1392, 20:50 عصر
سلام دوستان
وقتی ما با استفاده از ساختار try catch یه استثنا رو مدیریت میکنیم دیگه چه لزومی داره که اون رو با throw دوباره پرتاب کنیم؟؟! درواقع میخوام بدونم این پرتاب استثنا عملا به چه کاری میاد؟!

arefba
چهارشنبه 19 تیر 1392, 21:24 عصر
Usually the throw statement is used with try-catch or try-finally statements. When an exception is thrown, the program looks for the catch statement that handles this exception.
You can also rethrow a caught exception using the throw statement. For more information and examples, see try-catch (http://msdn.microsoft.com/en-us/library/0yd65esw%28v=vs.80%29.aspx) and Throwing Exceptions (http://msdn.microsoft.com/en-us/library/xhcbs8fz%28v=vs.80%29.aspx).

hadi0x7c7
پنج شنبه 20 تیر 1392, 01:12 صبح
سلام دوستان
وقتی ما با استفاده از ساختار try catch یه استثنا رو مدیریت میکنیم دیگه چه لزومی داره که اون رو با throw دوباره پرتاب کنیم؟؟! درواقع میخوام بدونم این پرتاب استثنا عملا به چه کاری میاد؟!

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

cups_of_java
پنج شنبه 20 تیر 1392, 10:37 صبح
برای انتقال خطا به لایه های بالاتر (متد های فراخواننده) اجرایی! همیشه همه خطا ها رو تو یه متد نباید هندل کرد! گاهی شما catch می کنی تا در صورت خطا یه کاری انجام بدی (مثلن بستن فایلی که باز کرده بودی) ولی خطا رو نمی تونی هندل کنی (مثلن تو کلاسی هستی که با دیتابیس کار می کنه و اینجا دسترسی به متدهایی که به کاربر توی UI خطایی رو نشون بدن نداری) پس دوباره پرتابش می کنی تا برسه به متدی که فراخوانی رو شروع کرده بوده در سطح UI و اونجا به کاربر خطا رو نمایش بدی!
این یه مثال ساده بود برای اینکه جا بندازه کاربرد throw رو!