এমনকি সেরা প্রোগ্রামাররাও তাদের কোডে ভুল করে। একটি টাইপো, একটি অপ্রত্যাশিত ব্যবহারকারীর ইনপুট বা অন্যান্য অনেক কারণে যা ট্র্যাক করা কঠিন একটি ত্রুটি ঘটতে পারে৷
এখানেই ব্যতিক্রম হ্যান্ডলিং আসে। ভাল কোডে ব্যতিক্রম হ্যান্ডলার অন্তর্ভুক্ত থাকে, যা পূর্বনির্ধারিত উপায়ে কোডের ত্রুটির প্রতিক্রিয়া জানাবে। ব্যতিক্রম হ্যান্ডলারগুলি দরকারী কারণ তারা একটি প্রোগ্রামকে নির্দেশ দেয় যে কীভাবে কোনও ত্রুটি ঘটলে এবং কখন প্রতিক্রিয়া জানাতে হবে।
জাভাতে, try...catch
ব্লক ব্যতিক্রম পরিচালনার জন্য ব্যবহৃত হয়। এই টিউটোরিয়ালটি ব্যতিক্রম পরিচালনার প্রাথমিক বিষয়গুলি নিয়ে আলোচনা করবে, কিভাবে try...catch
ব্যবহার করতে হয় ব্যতিক্রমগুলি পরিচালনা করতে ব্লক করুন এবং কিভাবে finally
ব্যবহার করবেন try...catch
সহ বিবৃতি . আমরা try...catch
-এর কয়েকটি উদাহরণ দিয়েও হাঁটব কর্মে ব্লক।
জাভা ব্যতিক্রম
ব্যতিক্রমগুলি হল অপ্রত্যাশিত ঘটনা যা একটি প্রোগ্রাম চালানোর সময় ঘটে। একটি ব্যতিক্রম একটি প্রোগ্রামের প্রবাহকে ব্যাহত করবে এবং এটি সম্পূর্ণ হওয়ার আগেই একটি প্রোগ্রাম চালানো বন্ধ করে দিতে পারে।
ব্যতিক্রমগুলি বিভিন্ন কারণে ঘটে, যার মধ্যে রয়েছে:সার্ভার অ্যাক্সেস করতে অক্ষম হওয়া, কোড ত্রুটি, টাইপো, অস্তিত্বহীন ফাইল খোলা, ভুল ব্যবহারকারীর ইনপুট এবং আরও অনেক কিছু।
ত্রুটি বার্তাগুলি জাভাতে ব্যতিক্রমগুলির মতো নয়। ত্রুটিগুলি এমন শর্তগুলিকে বোঝায় যেগুলি থেকে একটি প্রোগ্রাম পুনরুদ্ধার করতে পারে না, যেমন মেমরি ফুরিয়ে যাওয়া। সুতরাং, ত্রুটিগুলি সাধারণত বিকাশকারীদের দ্বারা পরিচালিত হয় না।
কিন্তু ব্যতিক্রমগুলি এমন একটি প্রোগ্রামের মধ্যে সমস্যা যা পরিচালনা করা যেতে পারে। যখন একটি ব্যতিক্রম উত্থাপিত হয়, তখন একটি বস্তু তৈরি হয় যাকে বলা হয় ব্যতিক্রম বস্তু . এই অবজেক্টগুলিতে ব্যতিক্রম সম্পর্কিত ডেটা থাকে, যেমন এর নাম এবং এটি প্রোগ্রামে কোথায় উত্থাপিত হয়েছিল।
এখন আপনি জাভাতে ব্যতিক্রম পরিচালনার প্রাথমিক বিষয়গুলি জানেন, আমরা try...catch
ব্যবহার শুরু করতে পারি এই ব্যতিক্রমগুলি পরিচালনা করার জন্য বিবৃতি।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগদানের পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
Cach Java ব্যবহার করে দেখুন
try...catch
বিবৃতি জাভাতে ব্যতিক্রমগুলি পরিচালনা করতে ব্যবহৃত হয়। ব্যতিক্রমগুলি পরিচালনা করার জন্য, কোডের একটি ব্লক try_catch
এর মধ্যে স্থাপন করা হবে ব্লক
যখন একটি প্রোগ্রাম একটি try_catch
সম্মুখীন হয় ব্লক, try
-এর মধ্যে কোড ব্লক কার্যকর করা হবে। যদি একটি ব্যতিক্রম উত্থাপিত হয়, কোডটি catch
এর মধ্যে রয়েছে ব্লক অবিলম্বে কার্যকর করা হবে. catch
একটি try
পরে ব্লক আসতে হবে একটি try..catch
এ ব্লক করুন বিবৃতি
এখানে একটি try_catch
এর সিনট্যাক্স রয়েছে জাভাতে বিবৃতি:
try { // Code to run } catch (ExceptionType error) { // Code to run when exception is raised } finally { // Code to run even if exception is not raised }
আমরা finally
সম্পর্কে কথা বলব এই টিউটোরিয়ালে পরে ব্লক করুন, কিন্তু এই মুহূর্তে আমরা try_catch
-এ ফোকাস করব ব্লক কোডের এই ব্লকটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য আসুন একটি উদাহরণ দিয়ে হেঁটে যাই।
Cach Java উদাহরণ চেষ্টা করুন
বলুন যে আমরা একটি প্রোগ্রাম তৈরি করছি যেটি studentNames
নামে একটি অ্যারে ব্যবহার করে . আমরা কনসোলে আমাদের studentNames অ্যারের পঞ্চম নামটি প্রিন্ট করতে চাই। তবে আমাদের ক্লাসে ছাত্র আছে মাত্র ছয়জন।
এর ফলে আমাদের কোডে একটি ত্রুটি উত্থাপিত হবে কারণ আমরা এমন একটি মান উল্লেখ করব যা বিদ্যমান ছিল না। এখানে একটি উদাহরণ প্রোগ্রাম যা সূচক মান 5 সহ ছাত্রের নাম প্রিন্ট করার চেষ্টা করে (আমাদের ক্লাসের ষষ্ঠ ছাত্র, কারণ সূচকের মান 0 থেকে শুরু হয়):
class Main { public static void main(String[] args) { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); }
আমাদের কোড ফিরে আসে:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at Main.main(Main.java:4)
আপনি দেখতে পাচ্ছেন, আমাদের প্রোগ্রাম একটি দীর্ঘ ত্রুটি ফিরিয়ে দিয়েছে কারণ আমরা এমন একটি মান উল্লেখ করার চেষ্টা করেছি যা বিদ্যমান নেই।
এখন, আসুন একটি try...catch
ব্যবহার করার চেষ্টা করি আমাদের ত্রুটিগুলি পরিচালনা করতে ব্লক করুন। যখন একটি ত্রুটি সম্মুখীন হয়, আমাদের প্রোগ্রাম প্রিন্ট করা উচিত “একটি ত্রুটি ছিল”, যাতে আমরা জানি কিছু ভুল হয়েছে। এই কাজটি সম্পন্ন করতে আমরা নিম্নলিখিত কোড ব্যবহার করতে পারি:
class Main { public static void main(String[] args) { try { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); } catch (Exception e) { System.out.println("There was an error."); } }
এখন যখন আমরা আমাদের কোড চালাই, নিম্নলিখিত প্রতিক্রিয়া ফিরে আসে:
There was an error.
উপরন্তু, আমরা একাধিক catch
নির্দিষ্ট করতে পারি ব্লক এটি দরকারী কারণ এটি আমাদের প্রতিটি ব্যতিক্রমকে আলাদাভাবে পরিচালনা করতে দেয়।
উপরের উদাহরণে, একটি ArrayIndexOutOfBoundsException
উত্থাপিত হয়েছিল. যদি আমরা সেই ত্রুটির জন্য বিশেষভাবে পরীক্ষা করতে চাই, কনসোলে একটি কাস্টম বার্তা মুদ্রিত করতে চাই এবং অন্যান্য সাধারণ ব্যতিক্রমগুলির জন্য পরীক্ষা করতে চাই, আমরা একাধিক ক্যাচ স্টেটমেন্ট ব্যবহার করতে পারি।
এখানে একটি প্রোগ্রামের একটি উদাহরণ যা ArrayIndexOutOfBoundsException
উভয়ের জন্য পরীক্ষা করে এবং একটি সাধারণ ব্যতিক্রম এবং প্রতিটি ত্রুটির জন্য কাস্টম প্রতিক্রিয়া রয়েছে:
class Main { public static void main(String[] args) { try { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException was raised."); } catch (Exception e) { System.out.println("There was an error."); } } }
এখন, যখন আমরা আমাদের প্রোগ্রাম চালাই, নিম্নলিখিত বার্তাটি কনসোলে প্রিন্ট হয়:
ArrayIndexOutOfBoundsException was raised.
এই প্রতিক্রিয়াটি ফেরত দেওয়া হয়েছে কারণ একটি ArrayIndexOutOfBoundsException
আমাদের প্রোগ্রামে উত্থাপিত হয়েছিল। কিন্তু যদি অন্য কোনো ত্রুটি ঘটে থাকে, Exception e
-এর কোড ক্যাচ ব্লক চালানো হবে, এবং নিম্নলিখিত বার্তাটি কনসোলে মুদ্রিত হবে:
There was an error.
অবশেষে বিবৃতি
finally
বিবৃতিটি try...catch
এর পরে কোডের একটি ব্লক কার্যকর করতে ব্যবহৃত হয় ব্লক কার্যকর করা হয়েছে। finally
ব্লক ঐচ্ছিক, এবং এটি সংজ্ঞায়িত হলে সর্বদা কার্যকর করা হয়। যদি কোন ব্যতিক্রম উত্থাপিত না হয়, তাহলে finally
ব্লক চেষ্টা ব্লকের পরে কার্যকর করা হয়; যদি একটি ব্যতিক্রম উত্থাপিত হয়, এটি catch
এর পরে কার্যকর করা হয় ব্লক
চলুন শেষ বিবৃতিটি কার্যে তুলে ধরার জন্য উপরে থেকে আমাদের উদাহরণ ব্যবহার করি। বলুন যে আমরা কনসোলে একটি বার্তা প্রিন্ট করতে চাই যেখানে This block has finished executing
. আমাদের বলতে যে try_catch
বিবৃতি সম্পূর্ণ। আমরা নিম্নলিখিত কোড ব্যবহার করার চেষ্টা করতে পারি:
class Main { public static void main(String[] args) { try { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException was raised."); } catch (Exception e) { System.out.println("There was an error."); } finally { System.out.println("This block of code has finished executing."); } } }
যখন আমরা আমাদের কোড চালাই, তখন নিম্নলিখিত প্রতিক্রিয়াটি ফিরে আসে:
ArrayIndexOutOfBoundsException was raised.
কোডের এই ব্লকটি কার্যকর করা শেষ হয়েছে৷
আপনি দেখতে পাচ্ছেন, আমাদের কোড ArrayIndexOutOfBoundsException
উত্থাপন করেছে ব্যতিক্রম, যেমনটি আমরা উপরে দেখেছি, এবং এটি প্রাসঙ্গিক catch
-এর মধ্যে কোডটি কার্যকর করেছে ব্লক
আমাদের উপরের উদাহরণে, আমরা একটি finally
উল্লেখ করেছি বিবৃতি সুতরাং, আমাদের কোড This block of code has finished executing
বার্তাটি প্রিন্ট করেছে . catch
এর পরে ব্লক কার্যকর করা হয়েছে।
উপসংহার
try...catch
জাভাতে ব্লক ব্যবহার করা হয় ব্যতিক্রমগুলিকে সুন্দরভাবে পরিচালনা করতে। try
-এর মধ্যে কোড ব্লক কার্যকর করা হয়, এবং যদি একটি ব্যতিক্রম উত্থাপিত হয়, প্রাসঙ্গিক catch
এর মধ্যে কোড ব্লক কার্যকর করা হয়। উপরন্তু, finally
বিবৃতিটি try...catch
এর পরে কোড চালানোর জন্য ব্যবহৃত হয় ব্লক কার্যকর হয়েছে, এমনকি যদি কোন ব্যতিক্রম উত্থাপিত না হয়।
এই টিউটোরিয়ালে আলোচনা করা হয়েছে কিভাবে try...catch
ব্যবহার করতে হয় জাভাতে ব্যতিক্রমগুলি পরিচালনা করতে ব্লক করুন এবং কীভাবে জাভা finally
ব্যবহার করবেন ব্লক এছাড়াও আমরা try...catch
উভয়ের উদাহরণ দিয়ে চলেছি ব্লক এবং finally
বিবৃতি ত্রুটি পরিচালনা করতে ব্যবহৃত হচ্ছে.
আপনি এখন জাভাতে ব্যতিক্রমগুলিকে আত্মবিশ্বাসের সাথে পরিচালনা করার জন্য প্রয়োজনীয় তথ্য দিয়ে সজ্জিত!