একটা
কথা মাথায় রাখবেন এক্সেপশন কখন Occur হয়? সব
সময় রান টাইমে Occur হয়, তাহলে চেকড , আনচেকড এগুলা কি পড়লাম?
এগুলা
কম্পাইলার এর Power পড়লাম, ভুল থাকলে তো প্রোগ্রাম রান ই করবে না, কিন্তু কম্পাইলার
ই নিজে কিছু কিছু ভুল ধরে ফেলতে পারে, এর মানে এই না যে এক্সেপশন হইসে, কম্পাইলার শুধু
আপনাকে Warning দিতে পারবে,
যে এই এক্সেপশনটা হইতে পারে, ঠিক করো,
আপনার কোড থামিয়ে দিবে না, Run Anyway করতে পারবেন। অকে>?
আপনার
মা আপনাকে বলছে ছাতা নিয়ে যাও বৃষ্টি হতে পারে
এর
মানে এই না যে বৃষ্টি শুরু হয়ে গেছে, মা এইখানে কম্পাইলারের মতো কাজ করে। আপনি যাওয়া
শুরু করবেন তখন ই এই বাধাটা আসা সম্ভব (ধরে নেন, ঝামেলা কইরেন না) অর্থাৎ রানটাইমে।
ভার্সিটির
আইডি কার্ড নিয়ে যেতে বলা আম্মু কম্পাইলার।
আর
আইডি কার্ড বাসায় রেখে এসে IdCardNotFoundException এর ছ্যাকা খেয়ে যাওয়া আপনি :D
:D ।
এক্সেপশনের
চাইল্ড ক্লাস অনেকগুলা, ইম্পরট্যান্ট কিছু দেখব এখন…
আপনারা
আগেউ এগুলা দেখেছেন কিন্তু তখন জানতেন না এগুলা আপনাকেই কন্ট্রোল করা লাগবে
ArithmeticException:
যোগ-বিয়োগ,
গুন, ভাগ রিলেটেড যেকোনো
ধরনের
ভুল করলে এই এক্সেপশনটা দেখাবে বা থ্রো করবে। দেখতে ইচ্ছে করলে নেটবিনসে যেয়ে System.out.println(5/0); এই লাইন রান করে দেখেন। এই এক্সেপশন কম্পাইলার ধরতে
পারবে না, তাই এটা রানটাইম এক্সেপশন। কথা কি ক্লিয়ার না ভেজাল আছে?
ArrayIndexOutOfBoundsException:
নাম দেখেই তো বুঝতেসেন, অ্যারের
ইনডেক্স নিয়ে ঝামেলা হইলে এটা থ্রো করবে। যেমনঃ
int
[] n=new int [4];
অ্যারের
সাইজ ডিক্লেয়ার করলেন 4, কিন্তু প্রিন্ট করার
try করছেন
System.out.println(n[23]);
এমন
কাজ করলে ArrayIndexOutOfBoundsException থ্রো করবে।
নাম
গুলা মুখস্ত করে ফেলেন, লাগবে।
IOException:
(চেকড এক্সেপশন) ইনপুট-আউটপুট অপারেশনে কোনো
এরর হলে এই এক্সেপশনটি থ্রো হয়, এর অনেক সাব ক্লাস আছে। জাভাতে ইনপুট-
আউটপুট অপারেশনের
জন্য যতরকম এক্সেপশন লেখা হয়েছে তাদের সব গুলোর সুপারক্লাস হচ্ছে এই IOException।
এর চাইল্ড ক্লাস গুলো
হলোঃ
EOFException, FileNotFoundException, InterruptedIOException ইত্যাদি।
IOException has sub classes such as FileNotFoundException, EOFException, UnsupportedEncodingException, SocketException, and SSLException. If the file is not found, FileNotFoundException is thrown. While reading a file,
EOFException occurs when end of the file is reached. If the file has an
unsupported encoding, UnsupportedEncodingException occurs. When the socket connection
is closed, SocketException can happen. SSLException happens when the ssl connection is
not established. (copied from javacodegeeks.com)
SQLException: ডেটাবেইস এক্সেস করার সময় কোনো ধরনের এরর হলে
এই
এক্সেপশন থ্রো করা হয়।
NullPointerException:
ধরেন ক্লাসের মধ্যে কোনো স্টুডেন্ট নেই আপনি
কাউকে
দেখিয়ে বলছেন বলতো ক্লাসে কতজন স্টুডেন্ট আছে
? এই ধরনের বেয়াদবি করা কি ঠিক ? জাভা এগুলা সহ্য করবে না। এইরকম কোনো কিছুর
ভ্যালু
যখন Null থাকে আর যদি আপনি ঐটা ধরে ঐ রিলেটেড
কোনো অবজেক্ট অথবা মেথড কল করেন তখন এই রকম এরর আসবে।
public
static void main(String [] args){
String s=null;
System.out.println(s.length);
// ডট length এইটা স্ট্রিং ক্লাসের
একটা মেথড, কিন্তু একে নাল ভ্যালু ওয়ালা কিছু দিয়ে
কল দিয়েছেন তাই এমন NullPointerException দেখাবে ।
System.out.println(s.chatAt(0));
// যা ই কল করেন নাল পয়েন্টার
এক্সেপশন দেখাবে। কারণ যাকে নিয়ে কল করছেন সে নিজেই নাল
ClassNotFoundException:
JVM (Java Virtual Machine) ক্লাস লোড করার
সময় কোনো ক্লাস খুজে না পেলে এই এক্সেপশন থ্রো করে।
যেমনঃ
Class loadClass= Class.forName(F:\abc.class);
forName(location
of a class) forName() মেথড দিয়ে কোনো ক্লাস কল করার চেষ্টা করছেন কিন্তু ঐ ক্লাস যদি
না পাওয়া যায় তখন ClassNotFoundException এক্সেপশন থ্রো করবে।
এখন
এইটুকুই থাক,পরে লাগলে পরে শিখে নিব, এর পরে শিখব Exception Family এর মেম্বারদের সাথে
কিভাবে catch ,throw খেলতে হয়। খেলোয়াড়দের
সাথে একটু পরিচিত হয়ে যান নিজ দায়িত্বে ( ছবি থেকে )। ভাল থাকবেন।

Comments
Post a Comment