গুয়াভা (Guava) লাইব্রেরির Preconditions ক্লাসটি ইনপুট ভ্যালিডেশন করার জন্য একটি শক্তিশালী টুল সরবরাহ করে। এটি আপনার কোডে নির্দিষ্ট শর্ত পূরণ হচ্ছে কিনা তা পরীক্ষা করে এবং শর্ত পূরণ না হলে একটি IllegalArgumentException বা NullPointerException ছুড়ে দেয়। এই প্রক্রিয়াটি কোডে ভুল বা অনাকাঙ্ক্ষিত অবস্থার সম্ভাবনা কমিয়ে দেয় এবং অ্যাপ্লিকেশনের স্থিতিশীলতা নিশ্চিত করে।
Preconditions.checkNotNull()
Preconditions.checkNotNull() মেথডটি একটি অবজেক্টের জন্য নাল (null) চেক করতে ব্যবহৃত হয়। যদি আপনি নিশ্চিত হতে চান যে একটি অবজেক্ট নাল নয়, তবে এটি ব্যবহার করা যেতে পারে। যদি অবজেক্টটি নাল হয়, এটি একটি NullPointerException ছুঁড়ে দেয়।
ব্যবহার
import com.google.common.base.Preconditions;
public class GuavaExample {
public static void main(String[] args) {
String name = null;
// checkNotNull() ব্যবহার
try {
String result = Preconditions.checkNotNull(name, "Name cannot be null");
} catch (NullPointerException e) {
System.out.println(e.getMessage());
}
}
}
এখানে, যদি name নাল হয়, তবে checkNotNull() একটি NullPointerException ছুড়ে দেবে এবং সেই exception এর সাথে একটি কাস্টম মেসেজ প্রদান করবে, যেমন "Name cannot be null"।
কেন ব্যবহার করবেন?
- নাল ভ্যালু প্রতিরোধ: কোডে যেখানে নাল ভ্যালু অনুমোদিত নয়, সেখানে
checkNotNull()ব্যবহার করে আপনি নাল ভ্যালু হ্যান্ডলিং নিশ্চিত করতে পারেন। - বাগ কমানো: কোডের অপ্রত্যাশিত নাল ভ্যালু অ্যাক্সেস কমাতে সাহায্য করে, যা
NullPointerExceptionঘটাতে পারে। - কাস্টম মেসেজ: আপনি একটি কাস্টম মেসেজ প্রদান করতে পারেন, যা ডিবাগিংয়ের সময় সহায়ক হতে পারে।
Preconditions.checkArgument()
Preconditions.checkArgument() মেথডটি ইনপুট ভ্যালিডেশন করার জন্য ব্যবহৃত হয়। এটি নিশ্চিত করে যে একটি নির্দিষ্ট শর্ত সত্য কিনা, এবং শর্তটি মিথ্যা হলে IllegalArgumentException ছুড়ে দেয়। এটি সাধারণত ব্যবহৃত হয় যখন কোনো মেথডে বা কন্সট্রাকটরে কিছু নির্দিষ্ট প্যারামিটার বা কন্ডিশন বাধ্যতামূলক থাকে।
ব্যবহার
import com.google.common.base.Preconditions;
public class GuavaExample {
public static void main(String[] args) {
int age = -5;
// checkArgument() ব্যবহার
try {
Preconditions.checkArgument(age > 0, "Age must be greater than 0");
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
এখানে, যদি age 0 এর নিচে থাকে, তবে checkArgument() একটি IllegalArgumentException ছুড়ে দেবে এবং "Age must be greater than 0" মেসেজটি দেখাবে।
কেন ব্যবহার করবেন?
- ইনপুট ভ্যালিডেশন: যখন ইনপুটের শর্ত পূর্ণ হওয়া আবশ্যক, তখন
checkArgument()ব্যবহার করা হয়। এটি নিশ্চিত করে যে আপনি যে শর্তটি প্রয়োগ করছেন তা সত্য। - ব্যবহারকারী ইন্টারফেসের নিরাপত্তা: কোনো মান বা অবস্থার ভিত্তিতে কাস্টম ব্যতিক্রম তৈরি করতে সহায়ক।
- কাস্টম মেসেজ: এটি কাস্টম মেসেজের মাধ্যমে ইনপুট ভ্যালিডেশন সম্পর্কে আরও স্পষ্ট ধারণা দেয়।
checkNotNull() এবং checkArgument() এর মধ্যে পার্থক্য
- checkNotNull(): নাল ভ্যালু চেক করার জন্য ব্যবহৃত হয়।
- checkArgument(): একটি নির্দিষ্ট শর্ত বা যুক্তির সঠিকতা পরীক্ষা করার জন্য ব্যবহৃত হয়।
ব্যবহার উদাহরণ
ধরা যাক, আপনি একটি ইউজার রেজিস্ট্রেশন ফর্ম তৈরি করছেন যেখানে ইউজারকে নাম, বয়স এবং ইমেইল প্রদান করতে হবে। এখানে Preconditions.checkNotNull() এবং checkArgument() ব্যবহার করা যেতে পারে।
import com.google.common.base.Preconditions;
public class UserRegistration {
public static void main(String[] args) {
String name = "John";
int age = 25;
String email = "john.doe@example.com";
// checkNotNull() ব্যবহার
Preconditions.checkNotNull(name, "Name cannot be null");
Preconditions.checkNotNull(email, "Email cannot be null");
// checkArgument() ব্যবহার
Preconditions.checkArgument(age >= 18, "Age must be 18 or older");
System.out.println("User registered successfully!");
}
}
এখানে, checkNotNull() ব্যবহার করে নাম এবং ইমেইল চেক করা হয়েছে, এবং checkArgument() ব্যবহার করে বয়সের শর্ত পরীক্ষা করা হয়েছে।
Preconditions.checkNotNull() এবং Preconditions.checkArgument() আপনার কোডে ইনপুট ভ্যালিডেশন সহজ এবং কার্যকরী করতে সাহায্য করে। এই দুটি মেথড ব্যবহারের মাধ্যমে আপনি কোডের স্থিতিশীলতা নিশ্চিত করতে পারেন এবং সাধারণ ত্রুটিগুলি হ্যান্ডেল করতে পারেন।
Read more