Parsing Exceptions এবং তাদের হ্যান্ডলিং

Parsing Date এবং Time - জাভা টাইম প্যাকেজ (Java.time Package) - Java Technologies

226

Java 8-এ java.time প্যাকেজের অন্তর্গত টাইম API দিয়ে তারিখ এবং সময়ের কাজগুলো আরও সহজ এবং দক্ষ হয়েছে। এই API-এর মধ্যে DateTimeFormatter নামক ক্লাসটি রয়েছে, যা তারিখ এবং সময়ের স্ট্রিং ইনপুটকে নির্দিষ্ট ফরম্যাটে প্যার্স (parse) করতে ব্যবহৃত হয়। তবে, যখন আপনি একটি স্ট্রিং প্যার্স করেন, তখন ভুল ফরম্যাটের কারণে parsing exceptions হতে পারে। এই পোস্টে আমরা parsing exceptions এবং তাদের exception handling সম্পর্কে আলোচনা করব।

DateTimeFormatter: প্যার্সিং করার জন্য ব্যবহারযোগ্য ফরম্যাটার

DateTimeFormatter ক্লাসটি তারিখ এবং সময়ের স্ট্রিংকে পার্স করার জন্য ব্যবহার করা হয়। এটি স্ট্রিংয়ের নির্দিষ্ট ফরম্যাটের সাথে মিলিয়ে একটি LocalDate, LocalTime, LocalDateTime, ZonedDateTime, ইত্যাদি তৈরি করতে সহায়ক।

Common Parsing Exceptions in DateTimeFormatter:

  • DateTimeParseException: এটি সবচেয়ে সাধারণ parsing exception, যা ঘটে যখন ইনপুট স্ট্রিংটি নির্দিষ্ট ফরম্যাটের সাথে মেলে না।

DateTimeParseException Exception Handling:

DateTimeParseException হল একটি unchecked exception যা DateTimeFormatter এর parse() মেথড ব্যবহারের সময় তখন ঘটে যখন স্ট্রিংটির ফরম্যাট অসঠিক বা অযোগ্য হয়। এই exceptionটি DateTimeFormatter দ্বারা স্ট্রিংকে টাইম অবজেক্টে প্যার্স করার সময় উত্থাপিত হয়।

Example: DateTimeParseException Example

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class DateTimeParseExceptionExample {
    public static void main(String[] args) {
        String dateStr = "2024-13-45"; // Invalid date (13th month and 45th day)

        // Define a formatter for the expected date format
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        try {
            // Try to parse the date string
            LocalDate date = LocalDate.parse(dateStr, formatter);
            System.out.println("Parsed date: " + date);
        } catch (DateTimeParseException e) {
            // Handle parsing exception
            System.out.println("Error parsing date: " + e.getMessage());
        }
    }
}

Output:

Error parsing date: Text '2024-13-45' could not be parsed at index 5

ব্যাখ্যা:

  • এখানে dateStr হিসাবে "2024-13-45" একটি ভুল তারিখ, কারণ মাস 13 এবং দিন 45 বৈধ নয়। ফলে, DateTimeParseException উঠে এবং একটি ত্রুটি বার্তা দেওয়া হয়।

Exception Handling: DateTimeParseException

DateTimeParseException হ্যান্ডলিংয়ের জন্য সাধারণত try-catch ব্লক ব্যবহার করা হয়। যখন স্ট্রিংটি নির্দিষ্ট DateTimeFormatter ফরম্যাটের সাথে মেলে না, তখন এই exceptionটি ফেলে দেওয়া হয়। আপনি এই exceptionটি ধরতে এবং সেই অনুযায়ী ত্রুটি বার্তা বা কাস্টম হ্যান্ডলিং ব্যবস্থা করতে পারেন।

Example: Catching DateTimeParseException for Multiple Formats

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class MultiFormatDateParseExample {
    public static void main(String[] args) {
        String dateStr = "2024/12/23";  // Invalid format for default formatter
        
        // Define two possible formatters
        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy/MM/dd");
        DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        try {
            // Try to parse the date string using the first format
            LocalDate date = LocalDate.parse(dateStr, formatter1);
            System.out.println("Parsed date: " + date);
        } catch (DateTimeParseException e1) {
            try {
                // If the first format fails, try the second one
                LocalDate date = LocalDate.parse(dateStr, formatter2);
                System.out.println("Parsed date: " + date);
            } catch (DateTimeParseException e2) {
                System.out.println("Error parsing date: " + e2.getMessage());
            }
        }
    }
}

Output:

Parsed date: 2024-12-23

ব্যাখ্যা:

  • এখানে প্রথমে "2024/12/23" স্ট্রিংটি formatter1 ব্যবহার করে প্যার্স করার চেষ্টা করা হয়েছে। যদি এটি ব্যর্থ হয়, তবে পরবর্তীতে formatter2 দিয়ে প্যার্স করার চেষ্টা করা হয়।
  • DateTimeParseException যখন একটি নির্দিষ্ট ফরম্যাটে স্ট্রিং প্যার্স করা যায় না, তখন দ্বিতীয় ফরম্যাটটি ব্যবহার করা হয়।

Using DateTimeFormatter with Custom Error Handling

DateTimeFormatter ক্লাসের parse() মেথডে DateTimeParseException ব্যতিক্রমটি সহজে ধরতে এবং ত্রুটির কারণে কোডের অপ্রত্যাশিত আচরণ আটকানো সম্ভব।

Example: Handling Invalid Date Formats Gracefully

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class DateTimeParseGracefullyExample {
    public static void main(String[] args) {
        String[] dateStrings = {"2024-12-23", "2024-13-45", "2024-02-30"};

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        for (String dateStr : dateStrings) {
            try {
                LocalDate date = LocalDate.parse(dateStr, formatter);
                System.out.println("Parsed date: " + date);
            } catch (DateTimeParseException e) {
                System.out.println("Error parsing date '" + dateStr + "': " + e.getMessage());
            }
        }
    }
}

Output:

Parsed date: 2024-12-23
Error parsing date '2024-13-45': Text '2024-13-45' could not be parsed at index 5
Error parsing date '2024-02-30': Text '2024-02-30' could not be parsed at index 8

ব্যাখ্যা:

  • DateTimeParseException গ্রাস করে একটি ভুল তারিখের জন্য ত্রুটি বার্তা প্রদান করছে, কিন্তু অন্য সঠিক তারিখগুলির জন্য প্যার্সিং সফল হয়েছে।
  1. Parsing Exceptions: DateTimeParseException হল একটি সাধারণ exception যা ঘটে যখন DateTimeFormatter দিয়ে স্ট্রিং প্যার্স করার চেষ্টা করা হয় এবং স্ট্রিংটি নির্দিষ্ট ফরম্যাটের সাথে মেলে না।
  2. Exception Handling: try-catch ব্লক ব্যবহার করে এই exception হ্যান্ডল করা যায়, এবং একাধিক ফরম্যাটে স্ট্রিং প্যার্স করার জন্য বিভিন্ন পদ্ধতি প্রয়োগ করা যায়।
  3. Graceful Parsing: ব্যবহারকারী ইনপুট বা ডেটা ভ্যালিডেশন করার সময় আপনি DateTimeParseException ক্যাচ করে সঠিক বার্তা দিয়ে গ্রেসফুল হ্যান্ডলিং করতে পারেন।

এইভাবে DateTimeParseException হ্যান্ডলিংয়ের মাধ্যমে আপনি টাইম এবং তারিখ সম্পর্কিত প্যার্সিং ত্রুটিগুলি আরও কার্যকরভাবে ম্যানেজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...