1. throw
অপারেটর
যখন একটি ব্যতিক্রম একটি catch
ব্লক দ্বারা ধরা হয়, এবং এটি জাভা মেশিনে নিক্ষিপ্ত না হওয়া পর্যন্ত, এটি শুধুমাত্র একটি বস্তু যা উত্তরাধিকারসূত্রে পাওয়া যায় Exception
(বা বরং, Throwable
)। ব্যতিক্রম বস্তুর নিজেই কোন জাদুকরী বৈশিষ্ট্য নেই।
ব্যতিক্রমগুলি কীভাবে কাজ করে তার সমস্ত যুক্তি হল জাভা মেশিনের আচরণের একটি বিশেষ উপায় যখন একটি ব্যতিক্রম এটিকে নিক্ষেপ করা হয়।
আপনি সবসময় জাভা মেশিনে একটি ধরা ব্যতিক্রম পুনরায় থ্রো করতে পারেন। এটি করার জন্য, আপনাকে অপারেটর ব্যবহার করতে হবে throw
:
throw exception;
উদাহরণ:
কোড | কনসোল আউটপুট |
---|---|
|
|
এই কোডটিতে, আমরা একটি ব্যতিক্রম ধরা পড়েছি, এটি সম্পর্কে একটি বার্তা স্ক্রিনে প্রদর্শন করেছি এবং তারপরে এটি পুনরুদ্ধার করেছি।
catch
একই try
ব্লকের অন্যান্য ব্লকের দ্বারা একটি পুনঃনিক্ষেপ করা ব্যতিক্রম ধরা যাবে না ।
2. আপনার ব্যতিক্রম
যাইহোক, আপনি নিজেই একটি ব্যতিক্রম বস্তু তৈরি করতে পারেন: এটি শুধুমাত্র একটি বস্তু যার ধরন Exception
বা একটি শ্রেণী যা এটিকে উত্তরাধিকার সূত্রে প্রাপ্ত। এবং এটি নিক্ষেপ.
এটি শোনার চেয়ে সহজ। উদাহরণ:
কোড | কনসোল আউটপুট |
---|---|
|
|
উপরের উদাহরণে, আমরা একটি নতুন ব্যতিক্রম বস্তু তৈরি করেছি যার টাইপ RuntimeException
এবং অবিলম্বে throw
অপারেটর ব্যবহার করে এটি নিক্ষেপ করেছি।
এটি অবিলম্বে ব্লক দ্বারা ধরা হবে catch
, যেহেতু RuntimeException উত্তরাধিকারসূত্রে পেয়েছে Exception
। কোডটি catch (Exception except)
ক্লাসের উত্তরাধিকারী সমস্ত ক্লাসের ব্যতিক্রম অবজেক্ট ক্যাচ করে Exception
।
3. finally
কীওয়ার্ড
আরেকটি গুরুত্বপূর্ণ পয়েন্ট। কখনও কখনও একজন প্রোগ্রামারকে কোডে একটি ব্যতিক্রম ঘটেছে কিনা তা নির্বিশেষে কিছু ক্রিয়া সম্পাদন করতে হবে। উদাহরণস্বরূপ, ধরুন আমরা লেখার জন্য একটি ফাইল খুললাম। খোলা ফাইলটি কল করে বন্ধ করতে হবে close()
।
try
{
// Code where an exception might occur
}
catch(ExceptionType name)
{
// Exception handling code
}
finally
{
// Code that must executed no matter what happens
}
এই বাধ্যতামূলক ক্রিয়াগুলি সম্পাদন করার জন্য, নির্মাণে অন্য ধরণের ব্লক ( finally
) যুক্ত করা হয়েছিল try-catch
, যার ফলে try-catch-finally
গঠন তৈরি করা হয়েছিল। এটি এই মত দেখায়:
উদাহরণ:
FileInputStream source = null;
try
{
source = new FileInputStream("c:\\note.txt");
source.read();
}
catch(Exception except)
{
System.out.println("Caught the exception");
throw except;
}
finally
{
if (source != null)
source.close();
}
finally
ব্লকের কোডটি যে কোনও ক্ষেত্রেই কার্যকর হবে, কোনও ব্যতিক্রম ছিল কিনা তা নির্বিশেষে। এমনকি যদি একটি ব্যতিক্রম নিক্ষেপ করা হয় এবং ধরা না পড়ে তবে finally
ব্লকটি কার্যকর হবে।
যাইহোক, আপনি যদি একটি ব্যতিক্রম ধরতে না চান, কিন্তু আপনার একটি finally
ব্লকের প্রয়োজন হয়, তাহলে নির্মাণের জন্য শর্টহ্যান্ড স্বরলিপি ব্যবহার করুন try-catch-finally
: একটি try-finally
ব্লক। এটা এই মত কিছু দেখায়:
try
{
// Code where an exception might occur
}
finally
{
// Code that must executed no matter what happens
}
GO TO FULL VERSION