finally
«finally در جاوا» یعنی «در هر حالت اجرا کن». «استثنا (Exception)» یعنی خطای زمان اجرا. بلوک finally کنار try...catch می آید. سپس همیشه اجرا می شود؛ چه خطا باشد، چه نباشد. این کار بستن منابع را تضمین می کند.
اجرای قطعی پس از try...catch
با finally می توان کد پایانی را قطعی اجرا کرد. مثلا بعد از تلاش خواندن آرایه، پیام پایانی را چاپ کن. بنابراین روند برنامه قابل پیش بینی می ماند.
- بلوک
tryرا بنویس. - بلوک
catchرا برای خطا اضافه کن. - بلوک
finallyرا برای کار پایانی بنویس.
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
} finally {
System.out.println("The 'try catch' is finished.");
}
نکات و هشدارها
- finally همیشه اجرا می شود؛ حتی اگر خطا رخ دهد.
- اما اجرای برنامه ممکن است قبلش متوقف شود.
- پس از
returnهم finally اجرا می شود.
نکته: برای دیدن ساختار کامل، صفحه try...catch را ببین. همچنین درباره ثبات مقدار، بخش final را مرور کن.
هشدار: داخل finally کارهای حساس طولانی نکن؛ چون همیشه اجرا می شود.
جمع بندی سریع
- finally اجرا را قطعی می کند.
- پس از try...catch می آید.
- برای بستن منابع عالی است.
- با یا بدون خطا اجرا می شود.