try
সঞ্চালনের ব্লক সম্পন্ন হয়ে return
বিবৃতি এবং এর মান s
সময়ে return
বিবৃতি executes পদ্ধতি দ্বারা ফিরে মান। এই finally
ধারাটি পরবর্তীকালে s
( return
বিবৃতি সম্পূর্ণ হওয়ার পরে ) এর মান পরিবর্তন করে (এই মুহুর্তে) ফেরতের মান পরিবর্তন করে না।
নোট করুন যে উপরেরগুলি ব্লকটিতে s
নিজের মানের পরিবর্তনের সাথে সম্পর্কিত হয় finally
, যা s
উল্লেখ করা বস্তুর সাথে নয় । যদি s
কোনও পরিবর্তনীয় অবজেক্টের संदर्भ হয় (যা String
নয়) এবং অবজেক্টের বিষয়বস্তুগুলিfinally
ব্লকটিতে পরিবর্তন করা হয়েছিল , তবে সেই পরিবর্তনগুলি প্রত্যাবর্তিত মানটিতে দেখা যাবে।
এই সমস্ত কীভাবে পরিচালিত হয় তার বিশদ বিধিগুলি জাভা ভাষা নির্দিষ্টকরণের বিভাগ 14.20.2 এ পাওয়া যাবে । নোট করুন যে একটি return
বিবৃতি কার্যকর করার ফলে try
ব্লকটির আকস্মিক সমাপ্তি হিসাবে গণনা করা হয়েছে (" যদি চেষ্টা ব্লকের বাস্তবায়ন হঠাৎ অন্য কোনও কারণে আর .... " প্রযোজ্য হয় তবে শুরু হওয়া বিভাগটি শুরু হয় )। জেএলএসের 14.17 ধারা দেখুন কেন return
বিবৃতিটি কোনও ব্লকের হঠাৎ সমাপ্তি।
আরও বিশদের মাধ্যমে: যদি বিবৃতিটির কারণে কোনও বিবৃতি try
এবং ব্লক উভয়ই হঠাৎ করে বন্ধ হয়ে যায় , তবে §14.20.2 থেকে নিম্নলিখিত বিধিগুলি প্রয়োগ করা হবে:finally
try-finally
return
try
অন্য কোনও কারণে আর [যদি একটি ব্যতিক্রম ছোঁড়ার পাশাপাশি] হঠাৎ করে ব্লকের সম্পাদন সম্পূর্ণ হয়, তবে finally
ব্লকটি কার্যকর করা হয় এবং তারপরে একটি বিকল্প রয়েছে:
- যদি
finally
ব্লকটি স্বাভাবিকভাবে সম্পূর্ণ হয়, তবে try
বিবৃতিটি হঠাৎ করে আর এর কারণে পূর্ণ হয়।
- যদি
finally
এস কারণে কারণে ব্লকটি হঠাৎ করে সম্পূর্ণ হয়, তবে try
স্টেটমেন্টটি হঠাৎ করে এস কারণে (এবং কারণ আর বাদ দেওয়া হয়) জন্য সম্পূর্ণ হয়।
ফলাফলের যে return
বিবৃতি finally
ব্লক সমগ্র ফেরত মান নির্ধারণ করে try-finally
বিবৃতি, এবং থেকে প্রত্যাগত মান try
ব্লক বাতিল করা হয়। অনুরূপ একটি জিনিস ঘটে try-catch-finally
যদি বিবৃতি try
ব্লক একটি ব্যতিক্রম, এটি একটি দ্বারা ধরা ছোঁড়ার catch
ব্লক, এবং উভয় catch
ব্লক এবং finally
ব্লক আছে return
বিবৃতি।