আমাদের জাভাতে আমাদের নিজস্ব ব্যতিক্রম তৈরি করা উচিত। আমাদের নিজস্ব ব্যতিক্রম ক্লাস লেখার সময় নিম্নলিখিত বিষয়গুলি মনে রাখবেন
- সকল ব্যতিক্রম অবশ্যই নিক্ষেপযোগ্য শিশু হতে হবে।
- যদি আমরা একটি চেক করা ব্যতিক্রম লিখতে চাই যা স্বয়ংক্রিয়ভাবে হ্যান্ডেল বা ঘোষণা বিধি দ্বারা প্রয়োগ করা হয়, তাহলে আমাদের ব্যতিক্রম ক্লাস প্রসারিত করতে হবে।
- যদি আমরা রানটাইম ব্যতিক্রম লিখতে চাই, তাহলে আমাদের RuntimeException ক্লাস প্রসারিত করতে হবে।
আমরা আমাদের নিজস্ব ব্যতিক্রম শ্রেণিকে নিম্নরূপ সংজ্ঞায়িত করতে পারি:
ক্লাস MyException এক্সেপশন প্রসারিত করে {}
আমাদের নিজস্ব ব্যতিক্রম ক্লাস তৈরি করতে আমাদের শুধুমাত্র ব্যতিক্রম ক্লাস প্রসারিত করতে হবে। এগুলিকে পরীক্ষিত ব্যতিক্রম হিসাবে বিবেচনা করা হয়। নিম্নলিখিত InsufficientFundsException ক্লাসটি একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম যা এক্সেপশন ক্লাসকে প্রসারিত করে, এটিকে একটি চেক করা ব্যতিক্রম করে তোলে।
উদাহরণ
// ফাইলের নাম InsufficientFundsException.javaimport java.io.*;শ্রেণী InsufficientFundsException ব্যতিক্রম { ব্যক্তিগত দ্বিগুণ পরিমাণ প্রসারিত করে; পাবলিক InsufficientFundsException(ডবল পরিমাণ) { this.amount =পরিমাণ; } পাবলিক ডাবল getAmount() { ফেরতের পরিমাণ; }}// ফাইলের নাম CheckingAccount.javaclass CheckingAccount { ব্যক্তিগত দ্বিগুণ ব্যালেন্স; ব্যক্তিগত int সংখ্যা; public CheckingAccount(int number) { this.number =number; } সর্বজনীন অকার্যকর আমানত (ডবল পরিমাণ) { ব্যালেন্স +=পরিমাণ; } সর্বজনীন অকার্যকর প্রত্যাহার (ডবল পরিমাণ) InsufficientFundsException { if(amount <=balance) { ব্যালেন্স -=পরিমাণ; } অন্য { দ্বিগুণ প্রয়োজন =পরিমাণ - ব্যালেন্স; নতুন InsufficientFundsException(needs); } } পাবলিক ডাবল getBalance() { রিটার্ন ব্যালেন্স; } পাবলিক int getNumber() { রিটার্ন নম্বর; }}// ফাইলের নাম BankDemo.javapublic class BankDemo { পাবলিক স্ট্যাটিক ভ্যায়েড মেইন(স্ট্রিং [] args) { CheckingAccount c =new CheckingAccount(101); System.out.println("$500 জমা হচ্ছে..."); গ. আমানত (500.00); চেষ্টা করুন { System.out.println("\n$100 তোলা হচ্ছে..."); গ. প্রত্যাহার (100.00); System.out.println("\n$600 তোলা হচ্ছে..."); গ. প্রত্যাহার (600.00); } catch(InsufficientFundsException e) { System.out.println("দুঃখিত, কিন্তু আপনি ছোট $" + e.getAmount()); e.printStackTrace(); } } }
আউটপুট
$500 জমা হচ্ছে...$100 তোলা হচ্ছে...$600 তোলা হচ্ছে...দুঃখিত, কিন্তু আপনি BankDemo.main(BankDemo:53ja) এ $200.0InsufficientFundsExceptionat CheckingAccount.withdraw(BankDemo.java:32)এ ছোট।>