
জাভা এক্সেপশন হ্যান্ডলিং :
প্রোগ্রামের গতিপথ নিশ্চিন্ত রাখতে যে পদ্ধতি অবলম্বন করা হয় তাই এক্সেপশন হ্যান্ডলিং।মনে কর তুমি বাসে উঠলেই বমি করো এবং যেখানে বমি স্টার্ট হয় তুমি সেখানেই বাস থেকে নেমে গন্তব্যে যাওয়া বন্ধ কর। এখানে তোমার বাসে ঊঠিলে বমি হতে ও পারে আবার নাও পারে এটা তুমি যেমন জানো তেমনি একজন প্রোগ্রামার ও জানে যে তার কোথায় কোথায় প্রোগ্রাম সমস্যা হতে পারে। যেমন তুমি জানো যে যদি বাসে ভিড় হয় অথবা অনেক গরমে তোমার বমি হতেও পারে নাও পারে ঠিক তেমনি উদহারণ স্বরূপ তুমি কোনো ইমেজ ফাইল তোমার প্রোগ্রামে কল করলে যেটা কোনো ওয়েবসাইট এ আছে এখন যদি সেই সাইটে ইমেজ ফাইলটি আগে হতে ডিলিট হয়ে থাকে তখন তোমার প্রোগ্রাম ঐজায়গায় থেমে যাবে ঠিক তোমার বমির অবস্থার নয় । তুমি যেমন জানো বমি হলেই আমি অন্য একটা বাস এ অথবা হেঁটেই গন্তব্যে যাবো অর্থাৎ তুমি থিম থাকবে না যেকোনো উপায়ে তোমার পরবর্তী গন্তব্যে যাবে ঠিক তেমনি প্রোগ্রামার কিছু উপায় তৈরী করে রাখে যেমন তার লোকাল স্টোরে একটা ফাইল রাখে অথবা অন্য কোনো টেক্সট শো করে এটাই এক্সেপশন হ্যান্ডলিং।
এক্সেপশন হ্যান্ডলিং কীওয়ার্ড সমূহ :
try {} catch (){}finnaly {}এবং throw হলো এক্সেপশন হ্যান্ডলিং কীওয়ার্ড।
যখন কোনো প্রোগ্রামে এক্সেপশন থাকার সম্ভাবনা থাকবে তখন ওই কোডগুলো try { //এখানে কোড হবে } ব্লকের মধ্যে হবে এবং একটি try ব্লক কখনো এক থাকতে পারেনা তার সাথে একটি catch (// এর মধ্যে এক্সেপশন এর ধরণ এর বর্ণনা থাকবে ){} অথবা finally {} ব্লক থাকবে। একটি try{} ব্লক এ একাধিক ধরণের এক্সেপশন থাকতে পারে যেমন একটি try {}ব্লকের মধ্যে স্ট্রিংএবং ডাটাবেস কানেকশন কোড থাকতে পারে ইউজার হয়তোবা স্ট্রিং এর জায়গায় নম্বর দিলো অথবা ডাটাবেস কানেক্ট হলোনা সেক্ষেত্রে এক্সেপশন গুলো পর্যায়ক্রমে সাজাতে পারো। এক্সেপশন এর শেষে জেনেরিক এক্সেপশন ক্যাচ ব্লক রাখলে অনেক সুবিধা যেমন তুমি একটা প্রোগ্রামে দুইটা এক্সেপশন রাখলে বাস্তবে তোমার এক্সেপশন এর বাইরেও কিছু এক্সেপশন থাকতে পারে যা তুমি গেজ করতে পারছোনা তাই তুমি catch (Exception e ){} বেবহার করবে। finally হলো ট্রাই অথবা catch যেকোনো একটার কাজ শেষ হলে finally ব্লক এর কাজ শুরু করবে। যেমন ডাটাবেস এ কানেক্ট এর চেষ্টা করলে ট্রাই ব্লকার মধ্যে এবং finnaly ব্লকের মধ্যে ডাটাবেস কানেক্ট null করার চেষ্টা করলে তখন কোড প্রথমে try ব্লক এ সাকসেস না হলে catch ব্লক এক্সেকিউট করবে এবং তার পর ফাইনালি ব্লক এর কাজ করবে। মোট কথা এক্সেপশন থাকে বা না থাক finally ব্লক try catch এর পর এক্সেকিউট হবেই যদি ফাইনালি ব্লক কল করে থাকি। একটা ট্রাই catch ব্লকের মধ্যে আরেকটি try catch ব্লক এবং এর মধ্যে আরেকটি try catch ব্লক পর্যায়ক্রমে থাকতে পারে যাকে নেস্টেড try catc বলা হয়। অনেক সময় এক্সেপশন throw করা হয় যেমন তুমি চাচ্ছ কারো বয়স ১০ এর কম হলে অথবা ওজন ২০ কেজি এর কম হলে একটি এক্সেপশন হবে তখন তুমি এক্সেপশন throw করতে পারো। যেমন if (age <১০){
throw new ArithmeticException(” কাস্টম মেসেজ “)//এক্সেপশন নেম
}
throw করতে পারো।