কম্পিউটার

কিভাবে জাভা একটি ব্যতিক্রম নিক্ষেপ

ব্যতিক্রম হল অপ্রত্যাশিত ঘটনা যা প্রোগ্রাম নির্বাহের সময় ঘটে। যখন আপনার কোডটি একটি ব্যতিক্রমের সম্মুখীন হয়, তখন আপনার প্রোগ্রামের প্রবাহ বন্ধ হয়ে যাবে।

আপনি যখন জাভাতে কোডিং করছেন তখন আপনি ব্যতিক্রমগুলি সঠিকভাবে পরিচালনা করা গুরুত্বপূর্ণ। অন্যথায়, আপনার কোড কার্যকর করার সময় শেষ হয়ে যেতে পারে এবং শেষ-ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করতে পারে।

সেখানেই থ্রো এবং থ্রোস কীওয়ার্ড আসে। জাভা থ্রো এবং থ্রোস কীওয়ার্ডগুলি জাভাতে ব্যতিক্রমগুলি পরিচালনা করতে ব্যবহৃত হয়। এই টিউটোরিয়ালটি উদাহরণের সাথে আলোচনা করবে, কিভাবে জাভাতে এই কীওয়ার্ডগুলি ব্যবহার করতে হয়।

জাভা ব্যতিক্রম

জাভাতে, দুটি ইভেন্ট রয়েছে যা আপনার প্রোগ্রামের প্রবাহকে প্রভাবিত করতে পারে:ত্রুটি এবং ব্যতিক্রম।

প্রথম ইভেন্টটি একটি ত্রুটি, যা জাভা ভার্চুয়াল মেশিনের সমস্যাগুলিকে উপস্থাপন করে যেমন মেমরি ফাঁস, সিস্টেমের মেমরি ফুরিয়ে যাওয়া এবং লাইব্রেরি সামঞ্জস্যের সমস্যা। যখন একটি ত্রুটি সম্মুখীন হয়, একটি প্রোগ্রাম পুনরুদ্ধার করার সম্ভাবনা নেই. যাইহোক, ত্রুটিগুলি সাধারণত কোডারের নিয়ন্ত্রণের বাইরে থাকে এবং তাই জাভাতে, আমরা ত্রুটিগুলি পরিচালনা করি না।

ব্যতিক্রম হল দ্বিতীয় ধরনের ইভেন্ট যা আপনার প্রোগ্রামকে প্রভাবিত করতে পারে। ব্যতিক্রমগুলি আপনার কোডে ধরা এবং পরিচালনা করা যেতে পারে। যখন একটি ব্যতিক্রমের সম্মুখীন হয়, তখন ব্যতিক্রম সম্পর্কে তথ্য দিয়ে একটি অবজেক্ট তৈরি করা হয়, যা আপনি আপনার কোড বলতে ব্যবহার করতে পারেন যদি একটি ব্যতিক্রমের সম্মুখীন হয় তাহলে কি হবে৷

কিছু কারণ ব্যতিক্রম ঘটতে অন্তর্ভুক্ত:

  • আপনার কোডে ত্রুটি
  • অবিস্তৃত ফাইল খোলা হচ্ছে
  • অবৈধ ব্যবহারকারী ইনপুট
  • নেটওয়ার্ক সংযোগ হারাচ্ছে

আপনি ব্যতিক্রমগুলি পরিচালনা শুরু করার আগে দুটি ধরণের ব্যতিক্রম রয়েছে যা সম্পর্কে আপনার জানা উচিত:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

  • অচেক করা ব্যতিক্রমগুলি রান-টাইমে চেক করা হয়। এর মধ্যে রয়েছে ArithmeticException এবং ArrayIndexOutOfBoundsException .
  • চেক করা ব্যতিক্রমগুলি কম্পাইল-টাইমে চেক করা হয় এবং এতে IOException অন্তর্ভুক্ত থাকে এবং InterruptedException .

বেশিরভাগ অংশের জন্য, আপনি আপনার কোডে চেক করা ব্যতিক্রমগুলি পরিচালনা করতে চান। এর কারণ হল অচেক করা ব্যতিক্রমগুলি সাধারণত আপনার কোডে অপ্রত্যাশিত আচরণের পরিবর্তে প্রোগ্রামিং ত্রুটির ফলাফল।

জাভা থ্রোস কীওয়ার্ড

জাভা throws কীওয়ার্ডটি কোডের একটি ব্লকে উদ্ভূত ব্যতিক্রমগুলির ধরণ ঘোষণা করতে ব্যবহৃত হয়। থ্রোস ক্লজের জন্য এখানে সিনট্যাক্স রয়েছে:

accessModifier return functionName() throws Exception1, Exception2 {
   // Run code
  }

এটি কীভাবে কাজ করতে পারে তা ব্যাখ্যা করার জন্য আসুন একটি উদাহরণ ব্যবহার করি। ধরুন আমরা একটি সিনেমার জন্য একটি প্রোগ্রাম তৈরি করছি যা 16 এর বেশি সময় ধরে একটি সিনেমায় অংশগ্রহণকারী গ্রাহকের বয়স পরীক্ষা করে। যদি গ্রাহকের বয়স 16 বছরের কম হয়, তবে তাদের চলচ্চিত্রে প্রবেশের অনুমতি দেওয়া উচিত নয়; যদি তাদের বয়স 16 বা তার বেশি হয় তবে তাদের প্রবেশের অনুমতি দেওয়া উচিত।

গ্রাহকের বয়স পরীক্ষা করার জন্য এবং গ্রাহকের বয়স 16 বছরের কম হলে একটি গাণিতিক ব্যতিক্রম ব্যতিক্রম নিক্ষেপ করার জন্য আমরা যে কোডটি ব্যবহার করব তা এখানে রয়েছে:

class Main {
	public static void verifyAge(int age) throws ArithmeticException {
		if (age < 16) {
			throw new ArithmeticException("This customer is not old enough to see the movie.");
		} else {
			System.out.println("This customer is old enough to see the movie.");
		}
	}

	public static void main(String[] args) {
		verifyAge(14);
	}
}

আমাদের কোড ফিরে আসে:

থ্রেড “main” java.lang.ArithmeticException-এ ব্যতিক্রম:This customer is not old enough to see the movie.

    at Main.verifyAge(Main.java:4)

Main.main (Main.java:11) এ     at Main.main(Main.java:11)

যখন আমরা এই প্রোগ্রামটি চালাই, তখন আমাদের প্রধান প্রোগ্রামে নির্দিষ্ট বয়সের প্যারামিটারটি 14 এ সেট করা হয়। এটি 16-এর কম, তাই যখন verifyAge() পদ্ধতিটি কার্যকর করা হয়েছে, বিবৃতি age < 16 সত্য হিসাবে মূল্যায়ন করে, এবং একটি পাটিগণিত ব্যতিক্রম নিক্ষেপ করা হয়।

থ্রোস কীওয়ার্ডটি ব্যতিক্রমের ধরন নির্ধারণ করতে ব্যবহৃত হয় যা verifyAge() দ্বারা ফেরত দেওয়া হবে। পদ্ধতি থ্রো কীওয়ার্ডটি আমাদের প্রোগ্রামে ব্যতিক্রম নিক্ষেপ করতে ব্যবহৃত হয়।

জাভা থ্রো কীওয়ার্ড

জাভা থ্রো কীওয়ার্ডটি আপনার কোডে একটি ব্যতিক্রম ফেলতে ব্যবহৃত হয়। থ্রো কীওয়ার্ডটি একটি অবজেক্ট দ্বারা অনুসরণ করা হয় যা প্রোগ্রামে নিক্ষেপ করা হবে যদি একটি ব্যতিক্রম সম্মুখীন হয়।

এখানে জাভা থ্রো কীওয়ার্ডের সিনট্যাক্স রয়েছে:

throw throwObject;

চলুন জাভাতে ব্যতিক্রমগুলি পরিচালনা করতে ব্যবহৃত থ্রো স্টেটমেন্টের কয়েকটি উদাহরণের মাধ্যমে চলুন।

চেক করা ব্যতিক্রম নিক্ষেপ করুন

ধরুন আমরা একটি বার্তা দেখতে চাই যাতে বলা হয়, "এই ফাইলটি বিদ্যমান নেই।" যখন একটি IOException আমাদের প্রোগ্রাম সম্মুখীন হয়. IOExceptions ব্যাতিক্রম চেক করা হয়, এবং তাই আমাদের "থ্রো" কীওয়ার্ড ব্যবহার করে সেগুলি পরিচালনা করা উচিত। এখানে কোডটি আমরা ব্যতিক্রম পরিচালনা করতে ব্যবহার করব:

import java.io.*;

class Main
	public static void getFile() throws IOException {
		throw new IOException("This file does not exist.");
	}
	
	public static void main(String[] args) {
		try {
			getFile();
		} catch (IOException error) {
			System.out.println(e.getMessage());
		}
	}
}

আমাদের কোড ফিরে আসে:

This file does not exist.

আসুন আমাদের কোড ভাঙ্গা যাক। প্রথমে, আমরা java.io আমদানি করি লাইব্রেরি, যা আমরা ফাইলগুলি পরিচালনা করে এমন কোনও প্রোগ্রামে ব্যবহার করব। তারপর আমরা মেইন নামে একটি ক্লাস তৈরি করি, যা আমাদের প্রোগ্রামের কোড সংরক্ষণ করে।

আমাদের Main-এ ক্লাস, আমরা getFile() নামে একটি ফাংশন সংজ্ঞায়িত করি যা একটি IOException নিক্ষেপ করে . এই ফাংশনটি "এই ফাইলটি বিদ্যমান নেই" বার্তার সাথে একটি IOException নিক্ষেপ করবে। আমাদের প্রোগ্রামে।

আমাদের প্রধান ক্লাসের প্রধান ফাংশনে, আমরা একটি চেষ্টা/ক্যাচ ব্লক তৈরি করি যা getFile() চালানোর চেষ্টা করে। পদ্ধতি যদি একটি IOException সম্মুখীন হয়, ক্যাচ ব্লকের মধ্যে কোডটি কার্যকর হবে এবং IOException থেকে বার্তাটি কনসোলে প্রিন্ট করা হবে। সুতরাং, আমাদের কোড রিটার্ন করে, "এই ফাইলটির অস্তিত্ব নেই।", যা আমরা আগে ঘোষণা করা বার্তা।

অচেক করা ব্যতিক্রম নিক্ষেপ করুন

সুতরাং, ধরুন আমরা একটি StringIndexOutOfBounds নিক্ষেপ করতে চেয়েছিলাম ব্যতিক্রম যদি আমাদের প্রোগ্রাম একটি স্ট্রিং মধ্যে একটি সূচক মান অ্যাক্সেস করার চেষ্টা করে যা বিদ্যমান নেই। আমরা এই কোড ব্যবহার করে তা করতে পারি:

class Main {
	public static void outOfBounds() {
		throw new StringIndexOutOfBoundsException("This index value is invalid.");
	}

	public static void main(String[] args) {
		outOfBounds();
	}
}

আমাদের কোডে অনেক কিছু চলছে, তাই আসুন এটি ভেঙে ফেলি। প্রথমত, আমরা মেইন নামে একটি ক্লাস ঘোষণা করেছি যেখানে এই প্রোগ্রামের জন্য আমাদের কোড বিদ্যমান।

তারপর আমরা outOfBounds() নামে একটি ফাংশন তৈরি করেছি যা চালানো হলে, একটি StringIndexOutOfBounds নিক্ষেপ করবে ব্যতিক্রম বার্তা This index value is invalid.৷ ব্যতিক্রম অনুষঙ্গী হবে. অবশেষে, আমাদের প্রধান প্রোগ্রামে, আমরা outOfBounds() কল করি ফাংশন, যা তারপর ফেরত দেয়:

থ্রেড “main” java.lang.StringIndexOutOfBoundsException-এ ব্যতিক্রম:এই সূচক মানটি অবৈধ।

    at Main.outOfBounds(Main.java:3)

Main.main (Main.java:7) এ     at Main.main(Main.java:11)

এই উদাহরণে, আমরা একটি অচেক ব্যতিক্রম নিক্ষেপ করেছি। এটি সাধারণত প্রয়োজনীয় নয়, যেমনটি আমরা আগে আলোচনা করেছি, তবে আমরা আপনাকে সিনট্যাক্স দেখানোর জন্য যাইহোক একটি অচেক করা ব্যতিক্রম ফেলে দিয়েছি৷

উপসংহার

চেক করা ব্যতিক্রমগুলি পরিচালনা করা জাভাতে রক্ষণাবেক্ষণযোগ্য কোড লেখার একটি গুরুত্বপূর্ণ অংশ। জাভাতে, থ্রো এবং থ্রো কীওয়ার্ডগুলি ব্যতিক্রমগুলি নিক্ষেপ এবং পরিচালনা করতে ব্যবহৃত হয়।

এই টিউটোরিয়ালটি জাভাতে থ্রো এবং থ্রোস কীওয়ার্ডগুলি কীভাবে ব্যবহার করতে হয় তা কভার করেছে এবং আপনাকে প্রক্রিয়াটি শিখতে সহায়তা করার জন্য প্রাসঙ্গিক উদাহরণ প্রদান করেছে। এই টিউটোরিয়ালটি পড়ার পরে, আপনি একজন পেশাদারের মতো জাভাতে ব্যতিক্রমগুলি নিক্ষেপ এবং পরিচালনা শুরু করতে প্রস্তুত!


  1. কিভাবে জাভা একটি ব্যতিক্রম নিক্ষেপ

  2. জাভাতে অ্যারেলিস্ট কীভাবে শুরু করবেন

  3. কিভাবে ব্যতিক্রমগুলি C++ এ কাজ করে

  4. জাভা ব্যতিক্রম এবং সেগুলি কীভাবে পরিচালনা করবেন