Custom Exceptions তৈরি এবং থ্রো করা

Exception Handling (এক্সসেপশন হ্যান্ডলিং) - ডি প্রোগ্রামিং (D Programming) - Computer Programming

308

Custom Exceptions তৈরি এবং থ্রো করা


ডি প্রোগ্রামিং ভাষায়, আপনি custom exceptions তৈরি করতে পারেন, যা প্রোগ্রামে কাস্টম ত্রুটি পরিস্থিতি হ্যান্ডেল করতে সাহায্য করে। যখন আপনার কোডে এমন কিছু সমস্যা ঘটে যা সাধারণ ত্রুটি বা ত্রুটি শ্রেণীর মধ্যে পড়ে না, তখন আপনি কাস্টম এক্সেপশন তৈরি করতে পারেন। এটি আপনাকে আপনার প্রোগ্রামের ত্রুটির জন্য স্পেসিফিক এবং বিস্তারিত বার্তা প্রদান করতে সাহায্য করবে।

ডি প্রোগ্রামিং ভাষায় throw এবং catch কিওয়ার্ড ব্যবহার করে এক্সেপশন থ্রো এবং হ্যান্ডেল করা যায়।


1. Custom Exception তৈরি করা

ডি ভাষায় কাস্টম এক্সেপশন তৈরি করতে, আপনাকে Exception ক্লাস থেকে একটি নতুন ক্লাস ডেরিভ করতে হবে। তারপর আপনি সেই ক্লাসের মাধ্যমে কাস্টম এক্সেপশন তৈরি করতে পারেন।

উদাহরণ:

import std.stdio;

class MyCustomException : Exception {
    this(string message) {
        super(message);  // Exception ক্লাসের কনস্ট্রাক্টর কল করা
    }
}

void main() {
    try {
        throw new MyCustomException("This is a custom exception!");  // কাস্টম এক্সেপশন থ্রো করা
    } catch (MyCustomException e) {
        writeln("Caught an exception: ", e.msg);  // এক্সেপশন হ্যান্ডেল করা
    }
}

এখানে:

  • MyCustomException ক্লাসটি Exception ক্লাস থেকে ডেরিভ করা হয়েছে।
  • super(message) ব্যবহার করে Exception ক্লাসের কনস্ট্রাক্টরকে কল করা হয়েছে, যাতে একটি মেসেজ প্রদান করা যায়।
  • throw কিওয়ার্ড দিয়ে কাস্টম এক্সেপশন থ্রো করা হয়েছে এবং catch ব্লক দিয়ে সেই এক্সেপশন হ্যান্ডেল করা হয়েছে।

আউটপুট:

Caught an exception: This is a custom exception!

2. Exception Thrown করতে throw ব্যবহার

ডি ভাষায় এক্সেপশন থ্রো করতে throw কিওয়ার্ড ব্যবহার করা হয়। এটি ব্যবহার করে আপনি যেকোনো এক্সেপশন (অথবা কাস্টম এক্সেপশন) থ্রো করতে পারেন।

উদাহরণ:

import std.stdio;

void checkPositive(int number) {
    if (number < 0) {
        throw new MyCustomException("Number must be positive!");  // কাস্টম এক্সেপশন থ্রো করা
    }
    writeln("The number is positive.");
}

void main() {
    try {
        checkPositive(-5);  // নেতিবাচক সংখ্যা দেয়া
    } catch (MyCustomException e) {
        writeln("Caught an exception: ", e.msg);
    }
}

এখানে:

  • checkPositive ফাংশনটি চেক করে যে, যদি সংখ্যাটি নেতিবাচক হয়, তবে কাস্টম এক্সেপশন থ্রো করবে।
  • throw new MyCustomException("Number must be positive!"); দ্বারা এক্সেপশন থ্রো করা হয়েছে।

আউটপুট:

Caught an exception: Number must be positive!

3. Multiple Exceptions Handling

একটি প্রোগ্রামে একাধিক এক্সেপশন হ্যান্ডেল করার জন্য, আপনি একাধিক catch ব্লক ব্যবহার করতে পারেন। একাধিক কাস্টম এক্সেপশন বা বিল্ট-ইন এক্সেপশন একসাথে হ্যান্ডেল করা সম্ভব।

উদাহরণ:

import std.stdio;

class NegativeNumberException : Exception {
    this(string message) {
        super(message);
    }
}

class ZeroNumberException : Exception {
    this(string message) {
        super(message);
    }
}

void checkNumber(int number) {
    if (number < 0) {
        throw new NegativeNumberException("Negative number detected!");
    } else if (number == 0) {
        throw new ZeroNumberException("Zero is not allowed!");
    } else {
        writeln("Valid number: ", number);
    }
}

void main() {
    try {
        checkNumber(-5);  // Negative number
    } catch (NegativeNumberException e) {
        writeln("Caught exception: ", e.msg);
    } catch (ZeroNumberException e) {
        writeln("Caught exception: ", e.msg);
    }
}

এখানে:

  • দুটি কাস্টম এক্সেপশন ক্লাস তৈরি করা হয়েছে: NegativeNumberException এবং ZeroNumberException
  • checkNumber ফাংশনটি বিভিন্ন শর্তে কাস্টম এক্সেপশন থ্রো করছে।
  • catch ব্লক দুটি একে একে চেক করবে এবং ত্রুটির উপযুক্ত বার্তা প্রিন্ট করবে।

আউটপুট:

Caught exception: Negative number detected!

4. Exception Handling এর অন্যান্য ফিচার

  • finally ব্লক: ডি ভাষায়, আপনি এক্সেপশন হ্যান্ডেল করার পর কিছু কোড চালানোর জন্য finally ব্লকও ব্যবহার করতে পারেন। এই ব্লকটি সবসময় চালানো হবে, এক্সেপশন ঘটুক বা না ঘটুক।

উদাহরণ:

import std.stdio;

void main() {
    try {
        writeln("Trying...");
        throw new MyCustomException("An error occurred!");
    } catch (MyCustomException e) {
        writeln("Caught an exception: ", e.msg);
    } finally {
        writeln("This will always be executed.");
    }
}

আউটপুট:

Trying...
Caught an exception: An error occurred!
This will always be executed.

সারসংক্ষেপ

  • Custom exceptions তৈরি করার জন্য Exception ক্লাস থেকে ডেরিভেটিভ ক্লাস তৈরি করা হয় এবং super(message) ব্যবহার করে মেসেজ পাঠানো হয়।
  • throw কিওয়ার্ড দিয়ে কাস্টম এক্সেপশন থ্রো করা যায় এবং catch ব্লক ব্যবহার করে এক্সেপশন হ্যান্ডেল করা হয়।
  • একাধিক এক্সেপশন হ্যান্ডলিং এবং finally ব্লক ব্যবহার করে আপনি কোডের নির্ভরযোগ্যতা এবং সঠিকভাবে ত্রুটিগুলো পরিচালনা করতে পারেন।

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

Content added By
Promotion

Are you sure to start over?

Loading...