Java Technologies JVM তে Exception এবং Error Handling এর কাজ গাইড ও নোট

354

Java Virtual Machine (JVM) হল সেই পরিবেশ যেখানে Java প্রোগ্রামগুলি এক্সিকিউট হয়। যখন Java প্রোগ্রাম চালানো হয়, তখন বিভিন্ন exceptions (অবিশ্বস্ত বা অপ্রত্যাশিত পরিস্থিতি) এবং errors (সিস্টেমের গুরুতর সমস্যা) ঘটতে পারে। JVM এই exceptions এবং errors এর সঠিকভাবে পরিচালনা করতে সহায়তা করে। এই প্রক্রিয়াটি Java প্রোগ্রামের কার্যকারিতা এবং স্থিতিশীলতা নিশ্চিত করতে গুরুত্বপূর্ণ।

Exception Handling in JVM

Exception হল এমন একটি অবস্থা যা Java প্রোগ্রামের স্বাভাবিক ফ্লো বিঘ্নিত করে। Java এ একটি exception তখন ঘটে যখন কোন প্রোগ্রাম একটি অপ্রত্যাশিত বা অবৈধ অপারেশন চেষ্টা করে, যেমন শূন্য দিয়ে ভাগ করা, ফাইল খোলার সময়ে ত্রুটি হওয়া, বা একটি অবজেক্টের সাথে কাজ করার সময় কোনো ত্রুটি হওয়া। JVM সেই exception এর জন্য নির্দিষ্ট ব্যবস্থা গ্রহণ করে।

JVM তে Exception Handling প্রক্রিয়া:

  1. Exception Throwing:
    • Java প্রোগ্রামে যখন কোনো সমস্যা ঘটে, তখন JVM একটি exception তৈরি করে এবং সেটি throw করে।
    • উদাহরণস্বরূপ:

      int result = 10 / 0;  // ArithmeticException হবে, কারণ শূন্য দিয়ে ভাগ করা যাচ্ছে
      
  2. Exception Catching:
    • JVM যখন একটি exception throw করে, তখন catch ব্লকটি exception ধরার জন্য প্রস্তুত থাকে। এটি একটি try-catch ব্লকের মাধ্যমে ঘটতে পারে।
    • উদাহরণ:

      try {
          int result = 10 / 0;
      } catch (ArithmeticException e) {
          System.out.println("Error: Cannot divide by zero");
      }
      
  3. Exception Propagation:
    • যদি exception catch করা না হয়, তবে এটি stack unwinding এর মাধ্যমে caller মেথডে propagate হয়।
    • JVM এই exception গুলিকে caller মেথডের মধ্যে প্রেরণ করে যতক্ষণ না সেটা catch করা হয় অথবা terminate হয়।
  4. Exception Types:
    • Checked Exceptions: এই ধরনের exceptions কম্পাইল টাইমে চিহ্নিত করা হয় এবং এগুলিকে অবশ্যই try-catch ব্লকে অথবা throws কিওয়ার্ড দিয়ে ধরতে হয়। যেমন: IOException, SQLException
    • Unchecked Exceptions: এগুলি RuntimeException থেকে derive হয় এবং এগুলি কম্পাইল টাইমে চেক করা হয় না। যেমন: ArithmeticException, NullPointerException
  5. Finally Block:
    • Finally block একটি ঐচ্ছিক ব্লক যা try-catch ব্লকের পরে আসে এবং এটি exception হোক বা না হোক, সর্বদা এক্সিকিউট হয়।
    • এটি সাধারণত রিসোর্স মুক্ত করার জন্য (যেমন ফাইল বা ডাটাবেস সংযোগ বন্ধ করা) ব্যবহৃত হয়।
    • উদাহরণ:

      try {
          // Some code
      } catch (Exception e) {
          // Handle exception
      } finally {
          // Cleanup code
      }
      

Error Handling in JVM

Error হল এমন একটি গুরুতর অবস্থা যা Java প্রোগ্রামটির সাধারণ কার্যকারিতা বিপর্যস্ত করে। JVM এর ত্রুটি গুলি unchecked হয় এবং এর মধ্যে OutOfMemoryError, StackOverflowError, VirtualMachineError ইত্যাদি অন্তর্ভুক্ত থাকে।

JVM তে Error Handling প্রক্রিয়া:

  1. Error Types:
    • OutOfMemoryError: JVM যদি এক্সিকিউশন চলাকালীন পর্যাপ্ত মেমরি না পায়, তবে এই ত্রুটি সৃষ্টি হতে পারে। উদাহরণস্বরূপ, যখন heap বা stack মেমরি পূর্ণ হয়ে যায়।
    • StackOverflowError: এটি ঘটে যখন সিস্টেমের স্ট্যাক মেমরি সীমা অতিক্রম করে, সাধারণত অত্যধিক রিকার্সিভ কলের কারণে।
    • VirtualMachineError: এটি JVM এর ইমপ্লিমেন্টেশনে সমস্যা বা সিস্টেম রিসোর্সের অভাবের কারণে হতে পারে।
  2. Error Handling:
    • Errors সাধারণত প্রোগ্রামারের দ্বারা ধরা সম্ভব নয় এবং সাধারণত অ্যাপ্লিকেশন চলাকালীন ম্যানুয়ালি ধরা হয় না।
    • JVM errors কে catch বা handle করার কোনো ব্যবস্থা রাখে না, কারণ এগুলি সাধারণত গুরুতর ত্রুটি হয় এবং এদের পরিণতি হল প্রোগ্রাম সম্পূর্ণভাবে থামানো।
  3. JVM Error Recovery:
    • Errors ক্ষেত্রে JVM সাধারণত প্রোগ্রামটি থামিয়ে দেয়, কারণ এরা সাধারণত সিস্টেমের অবস্থা গুরুতরভাবে প্রভাবিত করে। উদাহরণস্বরূপ, যদি JVM মেমরি কম পড়ে এবং OutOfMemoryError ঘটতে থাকে, তাহলে প্রোগ্রাম থেমে যায় এবং ব্যবহারকারী বা সিস্টেমকে পরিস্থিতির উপর নির্ভর করে প্রতিকার ব্যবস্থা গ্রহণ করতে বলা হয়।
  4. Error vs Exception:
    • Exceptions সাধারণত প্রোগ্রাম দ্বারা ধরা যায় এবং প্রোগ্রামারের উদ্যোগে সংশোধন করা যায়, কিন্তু Errors JVM দ্বারা ফেলা হয় এবং এটি সাধারণত গুরুতর হয়, যার ফলে প্রোগ্রামটি বন্ধ হয়ে যেতে পারে।
    • Exceptions শিকার করে catch blocks, কিন্তু Errors এর জন্য এমন কোনো সুনির্দিষ্ট প্রক্রিয়া নেই।

Exception এবং Error এর মধ্যে পার্থক্য:

FeatureExceptionError
Definitionঅপ্রত্যাশিত পরিস্থিতি যা প্রোগ্রাম চলার সময় ঘটেগুরুতর সমস্যা যা সাধারণত JVM বা সিস্টেমের মধ্যে ঘটে
Handlingtry-catch ব্লক ব্যবহার করে handle করা যায়সাধারণত handled হয় না, প্রোগ্রাম থামানো হয়
TypeChecked এবং UncheckedRuntime বা System-level issues (مثل OutOfMemoryError)
ExampleIOException, SQLExceptionOutOfMemoryError, StackOverflowError
Impactপ্রোগ্রাম চালু থাকতে পারে, সঠিকভাবে handle করলেপ্রোগ্রাম থেমে যেতে পারে, এটা গুরুতর ত্রুটি

JVM এর Exception এবং Error Handling প্রক্রিয়া Java প্রোগ্রাম চালানোর সময় মনে রাখা অত্যন্ত গুরুত্বপূর্ণ। JVM exception গুলিকে throw করে এবং catch করার জন্য প্রোগ্রামারকে একটি উপায় প্রদান করে, যাতে প্রোগ্রাম চলতে থাকে। তবে Error গুলি গুরুতর এবং JVM দ্বারা handled হয় না, কারণ এগুলি সিস্টেমের কাজকে প্রভাবিত করে। তাছাড়া Exceptions সাধারণত program logic এর অংশ হতে পারে, কিন্তু Errors সাধারণত সিস্টেম বা JVM এর অবস্থা সমস্যা হয়ে থাকে এবং এর ফলস্বরূপ প্রোগ্রাম থামানো হয়।

Content added By
Promotion

Are you sure to start over?

Loading...