কম্পিউটার

অবশেষে ব্লক কি সবসময় জাভাতে কার্যকর করা হয়?


হ্যাঁ, অবশেষে ব্লকটি সর্বদা কার্যকর করা হয় যদি না কোন অস্বাভাবিক প্রোগ্রামের সমাপ্তি হয় JVM ক্র্যাশ বা System.exit() এ কল থেকে।

  • অবশেষে একটি ব্লক সর্বদা কার্যকর করা হয় তা ব্যতিক্রম ঘটেছে বা না হয়েছে।
  • যদি একটি ফাইল বা ডিবি সংযোগ বন্ধ করার মতো একটি ব্যতিক্রম ঘটে, তবে অবশেষে ব্লকটি কোডটি পরিষ্কার করতে ব্যবহৃত হয়৷
  • আমরা বলতে পারি না যে চূড়ান্ত ব্লকটি সর্বদা কার্যকর হয় কারণ কখনও কখনও যদি System.exit() বা অনুরূপ কিছু কোড ট্রাই ব্লকে লেখা হয় তবে প্রোগ্রামটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে এবং এই ক্ষেত্রে অবশেষে ব্লকটি কার্যকর করা হবে না।<
  • অন্যান্য অবস্থার কারণে অবশেষে একটি ব্লক কার্যকর হবে না যেমন JVM মেমরি ফুরিয়ে গেলে যখন আমাদের জাভা প্রক্রিয়া টাস্ক ম্যানেজার বা কনসোল থেকে জোর করে মেরে ফেলা হয় যখন আমাদের মেশিনটি পাওয়ার ব্যর্থতা এবং আমাদের চেষ্টা ব্লকে অচলাবস্থার কারণে বন্ধ হয়ে যায়।<

উদাহরণ 1

public class FinallyBlock {
   public static void main(String args[]){
      try {
         int a=10,b=30;
         int c = b/a;
         System.out.println(c);
      } catch(ArithmeticException ae){
         System.out.println(ae);
      } finally {
         System.out.println("finally block is always executed");
      }
   }
}

উপরের উদাহরণে, ব্যতিক্রম ঘটলে বা না হলে অবশেষে ব্লকটি সর্বদা কার্যকর হয়।

আউটপুট

3
finally block is always executed

উদাহরণ 2

public class FinallyBlock {
   public static void main(String args[]) {
      try {
         System.out.println("I am in try block");
         System.exit(1);
      } catch(Exception ex){
         ex.printStackTrace();
      } finally {
         System.out.println("I am in finally block");
      }
   }
}

উপরের উদাহরণে, ট্রাই ব্লকে System.exit(1) শর্তের কারণে অবশেষে ব্লকটি কার্যকর হবে না।

আউটপুট

I am in try block

  1. জাভাতে ইনস্ট্যান্স ইনিশিয়ালাইজার ব্লক

  2. কেন জাভাতে ইনস্ট্যান্স ইনিশিয়ালাইজার ব্লক ব্যবহার করবেন?

  3. জাভা বর্তমান ওয়ার্কিং ডিরেক্টরি পান

  4. জাভা বর্তমান তারিখ সময় পান