VBScript তে ত্রুটি (Error) ঘটলে সেগুলি সঠিকভাবে ধরা এবং হ্যান্ডল করা প্রয়োজন, যাতে প্রোগ্রামটি সঠিকভাবে কাজ করতে পারে এবং ব্যবহারকারীকে কোনো ত্রুটির সম্মুখীন না হতে হয়। VBScript তে ত্রুটি ধরা এবং হ্যান্ডল করার জন্য On Error স্টেটমেন্ট এবং Err অবজেক্ট ব্যবহার করা হয়।
১. On Error স্টেটমেন্ট
VBScript তে ত্রুটি ধরা শুরু করার জন্য On Error স্টেটমেন্ট ব্যবহার করা হয়। এটি স্ক্রিপ্টের চলার সময় ত্রুটি ঘটলে স্ক্রিপ্টের কাজ চালিয়ে যেতে সাহায্য করে।
On Error Resume Next
এই স্টেটমেন্টটি স্ক্রিপ্টে ত্রুটি ঘটলে সেটিকে উপেক্ষা করে পরবর্তী লাইনটির কাজ চালিয়ে যেতে বলে। এটি সাধারণত তখন ব্যবহার করা হয়, যখন আপনি ত্রুটি এড়িয়ে যেতে চান এবং পরবর্তী কোড চালাতে চান।
On Error Resume Next
' ত্রুটি হতে পারে এমন কোড
Dim x
x = 1 / 0 ' ডিভিশন বাই জিরো (Zero Division)
If Err.Number <> 0 Then
MsgBox "ত্রুটি ঘটেছে: " & Err.Description
End If
এখানে, 1 / 0 কোডটি একটি ত্রুটি (Zero Division) তৈরি করবে, কিন্তু On Error Resume Next ব্যবহারের ফলে স্ক্রিপ্ট চলতে থাকবে। ত্রুটির বর্ণনা Err.Description দ্বারা দেখানো হবে।
On Error GoTo 0
এটি ত্রুটি হ্যান্ডলিং বন্ধ করার জন্য ব্যবহৃত হয়। একবার On Error GoTo 0 ব্যবহার করলে পরবর্তী কোডের জন্য কোনো ত্রুটি হ্যান্ডলিং সক্রিয় থাকবে না।
On Error Resume Next
' কিছু কোড
On Error GoTo 0
' ত্রুটি হ্যান্ডলিং বন্ধ
২. Err অবজেক্ট
VBScript তে Err অবজেক্ট ব্যবহৃত হয় ত্রুটি সম্পর্কে বিস্তারিত তথ্য পাওয়ার জন্য। এটি ত্রুটির নম্বর, বর্ণনা এবং অন্যান্য তথ্য প্রদান করে।
Err.Number এবং Err.Description
- Err.Number: এটি ত্রুটির একটি সুনির্দিষ্ট সংখ্যা প্রদান করে।
- Err.Description: এটি ত্রুটির বর্ণনা প্রদান করে।
উদাহরণ:
On Error Resume Next
' ত্রুটি হতে পারে এমন কোড
Dim result
result = 1 / 0 ' ডিভিশন বাই জিরো (Zero Division)
If Err.Number <> 0 Then
MsgBox "ত্রুটি কোড: " & Err.Number & vbCrLf & "ত্রুটির বর্ণনা: " & Err.Description
End If
এখানে, Err.Number ত্রুটির কোড দেখাবে (যেমন, 11 - Division by Zero) এবং Err.Description ত্রুটির বিস্তারিত বর্ণনা দেখাবে।
৩. On Error GoTo [Label]
যদি আপনি ত্রুটি ধরা এবং সুনির্দিষ্ট ত্রুটি হ্যান্ডলিং ব্লকে যেতে চান, তবে On Error GoTo [Label] স্টেটমেন্ট ব্যবহার করতে পারেন। এটি কোড execution বন্ধ করে নির্দিষ্ট লেবেলে চলে যাবে, যেখানে আপনি ত্রুটির জন্য নির্ধারিত কোড লিখতে পারেন।
On Error GoTo ErrorHandler
' কিছু কোড যা ত্রুটি ঘটাতে পারে
Dim y
y = 1 / 0 ' ডিভিশন বাই জিরো
Exit Sub
ErrorHandler:
MsgBox "ত্রুটি ঘটেছে! ত্রুটি কোড: " & Err.Number & vbCrLf & "ত্রুটির বর্ণনা: " & Err.Description
এখানে, যদি কোনো ত্রুটি ঘটে, কোড execution ErrorHandler লেবেলে চলে যাবে এবং ত্রুটির বিস্তারিত প্রদর্শিত হবে।
৪. ফাইনাল ব্লক (Cleanup)
ত্রুটি হ্যান্ডলিং শেষে আপনি প্রয়োজনীয় পরিষ্কারকাজ করতে চান, যেমন ফাইল বন্ধ করা বা মেমরি মুক্ত করা। এমন কাজ করার জন্য একটি Finally ব্লক ব্যবহার করা হয়, যা VBScript তে সোজাসুজি সমর্থিত না হলেও, আপনি Exit Sub ব্যবহার করে এই কাজগুলো করতে পারেন।
On Error GoTo ErrorHandler
' কিছু কোড
Exit Sub
ErrorHandler:
' ত্রুটি হ্যান্ডলিং কোড
MsgBox "ত্রুটি: " & Err.Description
' ফাইনাল কোড (পরিষ্কারকাজ)
MsgBox "ফাইনাল পরিষ্কারকাজ হচ্ছে"
এখানে, Exit Sub কোডটি ত্রুটি হ্যান্ডলিং শেষে এক্সিকিউট হবে এবং পরিষ্কারকাজটি সম্পন্ন হবে।
সারাংশ
VBScript তে ত্রুটি ধরা এবং হ্যান্ডল করার জন্য On Error স্টেটমেন্ট এবং Err অবজেক্ট ব্যবহার করা হয়। On Error Resume Next ত্রুটি উপেক্ষা করতে সহায়তা করে, আর On Error GoTo 0 ত্রুটি হ্যান্ডলিং বন্ধ করে। আপনি Err.Number এবং Err.Description ব্যবহার করে ত্রুটির বিশদ জানতে পারেন। On Error GoTo ব্যবহার করে ত্রুটি হ্যান্ডলিং ব্লক তৈরি করা যায়, যা কোডের স্থিতি বজায় রাখতে সহায়ক।
Read more