PatternSyntaxException ক্লাসটি রেগুলার এক্সপ্রেশন স্ট্রিং-এ সিনট্যাক্স এরর হলে নিক্ষেপ করা একটি আনচেকড 익সেপশন (unchecked exception) বোঝায়। এই ক্লাসে মূলত চারটি প্রধান মেথড রয়েছে:
getDescription() — এররটির বিবরণ রিটার্ন করে।
getIndex() — এররটির সূচক (index) রিটার্ন করে।
getPattern() — ত্রুটিযুক্ত রেগুলার এক্সপ্রেশন প্যাটার্নটি রিটার্ন করে।
getMessage() — এরর, সূচক, প্যাটার্ন এবং প্যাটার্ন-এ ত্রুটির নির্দেশনা ধারণকারী পুরো মেসেজটি রিটার্ন করে।
উদাহরণ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
public class PatternSyntaxExceptionExample {
public static void main(String args[]) {
// ব্যবহারকারী থেকে স্ট্রিং পড়া
System.out.println("Enter a String");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
// একটি শব্দের প্রথম ডিজিট মিল করার জন্য রেগুলার এক্সপ্রেশন (এখানে ভুল সিনট্যাক্স)
String regex = "[";
// রেগুলার এক্সপ্রেশন কম্পাইল করা
try {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
String result = matcher.replaceAll(" ");
System.out.print("Text after removing unwanted spaces: \n" + result);
} catch(PatternSyntaxException ex) {
System.out.println("Description: " + ex.getDescription());
System.out.println("Index: " + ex.getIndex());
System.out.println("Message: " + ex.getMessage());
System.out.println("Pattern: " + ex.getPattern());
}
}
}
আউটপুট
Enter a String this is a [sample text [
Description: Unclosed character class
Index: 0
Message: Unclosed character class near index 0
[
^
Pattern: [