জাভা এক্সেপশন হেন্ডেলিং - ১

exception

এক্সসেপশন হ্যান্ডলিং একটা খুব জরুরি বিষয় হলেও অনেকেই এটাকে কোন রকমে পার করে দিতে চায়। সঠিক এক্সসেপশন হ্যান্ডলিং একটা এপ্লিকেশনের কোয়ালিটিকে অনেক বাড়িয়ে তুলে। ব্যবহারকারীকে অদ্ভুদ সব এরর মেসেজ দেখা থেকেও মুক্তি দেয়।


যেহেতু জাভা এবং স্প্রিং ফ্রেমওয়ার্কে কাজ করি, তাই স্প্রিং ফ্রেমওয়ার্ক কিভাবে এর ইম্প্লিমেন্টেশন করা হয়েছে সেটাই দেখাবো। এক্সসেপশন হেন্ডেলিং এ আমি মূলত কিভাবে এক্সসেপশন হ্যান্ডেল করা যায় এবং একটা যথাযথ মেজেস দেয়া যায় এই দুই দিকে ফোকাস করব।


এক্সেপশন কি ?


কম্পিউটারে প্রোগ্রাম চালাতে গেলে অপ্রত্যাশিত বা অনাকাঙ্খিত যে সমস্যাগুলা হয়,যার ফলে প্রোগ্রাম যেভাবে কাজ করার কথা ছিল সেভাবে কাজ করতে পারে না, তখন তাকে এক্সসেপশন বলে। এক্সসেপশন থেকে বাঁচার সবচেয়ে ভালো উপায় হচ্ছে কোড না করা :) তারপরের ভালো উপায় হচ্ছে যতটা সম্ভব ভালোভাবে এক্সসেপশন হ্যান্ডল করা।


Java তে সব সমস্যা কে Throwable মূল ক্লাসকে এক্সটেন্ড করেই সমাধান করতে হয়। Throwable ক্লাস এর দুইটা সাব ক্লাস আছে


১. ইরর (Error)

২. এক্সসেপশন (Exception)



              ---> Throwable <--- 
              |    (checked)     |
              |                  |
              |                  |
      ---> Exception           Error
      |    (checked)        (unchecked)


ইরর


ইরর ক্লাস এমন গুরুতর সমস্যা নিয়ে কাজ করে করে, সেটাকে সামলে নিয়ে সামনে যাওয়া যায় না। প্রোগ্রাম এখানেই বন্ধ হয়ে যাবে।



এক্সসেপশন


এক্সসেপশন এমন সমস্যা নিয়ে কাজ করে, যেখানে সমস্যাকে সামলে নিয়ে কাজ চালানো যায় এর জন্য পুরা প্রোগ্রাম বন্ধ হয়ে যায় না।



এক্সসেপশন এর প্রকার


ওরাকল ডুকুমেন্ট থেকে দেখা যায় জাভাতে এক্সসেপশনকে মোট তিন ভাগে ভাগ করা হয়েছে

১. চেক এক্সসেপশন

২. আনচেক এক্সসেপশন এবং

৩. ইরোর



চেক এক্সসেপশন


যে সব এক্সসেপশন কম্পাইল টাইমে চেক দেয়া হয় তারাই চেক এক্সসেপশন। যেমন কোন I/O অপারেশন করতে গেলে বাধ্যতামূলক ট্রাই কেচ লিখতে বাধ্য করে বা থ্রেবোল লিখতে হয়। একই ভাবে ডাটাবেসের কানেকশনের কোডের বাধ্যতামূলক ট্রাই কেচ/থ্রো লিখতে বাধ্য। অন্যথায় কোড কম্পাইল করে না।



আনচেক এক্সসেপশন


যে সব এক্সসেপশন রান টাইমে চেক দেয়া হয় তারাই আনচেক এক্সসেপশন। সকল নাল পয়েন্টার এক্সসেপশন, ভুল ভাল ইনপুট ইত্যাদি।



ইরর


ইরর হচ্ছে এমন সমস্যা যাকে চেক টেক দিয়ে কাজ হয়ে না। মেমোরি শেষ, কম্পাইলারে সমস্যা ইত্যাদি।