টাইপস্ক্রিপ্টে ত্রুটি পরিচালনা
এই প্রবন্ধটি টাইপস্ক্রিপ্টে ত্রুটি পরিচালনার ব্যাখ্যা দেয়।
YouTube Video
টাইপস্ক্রিপ্টে ত্রুটি পরিচালনা
টাইপস্ক্রিপ্টে ত্রুটি পরিচালনা মূলত try...catch
নির্মাণ ব্যবহার করে করা হয়, যেভাবে জাভাস্ক্রিপ্টে করা হয়। টাইপস্ক্রিপ্টে টাইপ অনুমানের মাধ্যমে ত্রুটির বিষয়বস্তু আরও স্পষ্টভাবে পরিচালনা করা সম্ভব। এটি আরও সুনির্দিষ্ট এবং পাঠযোগ্য ত্রুটি পরিচালনার অনুমতি দেয়।
try...catch
সিনট্যাক্স
ত্রুটি পরিচালনার জন্য মৌলিক সিনট্যাক্স হল নিম্নরূপঃ।
1try {
2 // Code that may throw an error
3 throw new Error("Something went wrong!");
4} catch (error) {
5 // Catch and handle the error
6 console.error("Error:", error);
7} finally {
8 // Code that runs regardless of whether an error occurred
9 console.log("Finally block executed.");
10}
টাইপ-নিরাপদ ত্রুটি পরিচালনা
টাইপস্ক্রিপ্টে, catch
ব্লকের মধ্যে ধরা পড়া ত্রুটিগুলি any
টাইপ হিসেবে বিবেচিত হয়, তবে সুরক্ষিত ত্রুটি পরিচালনার জন্য সঠিক টাইপ নির্দিষ্ট করা সুপারিশ করা হয়। উদাহরণস্বরূপ, আপনি একটি কাস্টম ত্রুটি টাইপ সংজ্ঞায়িত এবং ব্যবহার করতে পারেন নিম্নরূপঃ।
1class CustomError extends Error {
2 constructor(message: string, public errorCode: number) {
3 super(message);
4 this.name = "CustomError";
5 }
6}
7
8try {
9 throw new CustomError("Invalid operation", 400);
10} catch (error) {
11 if (error instanceof CustomError) {
12 console.error(`Error: ${error.message}, Code: ${error.errorCode}`);
13 } else {
14 console.error("Unknown error occurred");
15 }
16}
এই উদাহরণে, CustomError
নামে একটি ক্লাস তৈরি করা হয়েছে, এবং errorCode
এর মতো কাস্টম বৈশিষ্ট্যসহ একটি ত্রুটি ছোড়া হয়েছে। catch
ব্লকে, instanceof
ব্যবহার করে ত্রুটির ধরণ নির্ধারণ করুন এবং উপযুক্ত পরিচালনা করুন।
অ্যাসিঙ্ক্রোনাস ত্রুটি পরিচালনা
TypeScript-এ, অ্যাসিনক্রোনাস ফাংশন ব্যবহারের সময় ত্রুটি পরিচালনার জন্য try...catch
ও ব্যবহার করা হয়।
1async function fetchData() {
2 try {
3 const response = await fetch("https://api.example.com/data");
4 if (!response.ok) {
5 throw new Error(`HTTP error! status: ${response.status}`);
6 }
7 const data = await response.json();
8 console.log(data);
9 } catch (error) {
10 console.error("Failed to fetch data:", error);
11 }
12}
13
14fetchData();
এই উদাহরণে, fetch
ব্যবহার করে ডেটা আনা হয়েছে এবং response.ok
পরীক্ষা করা হয়েছে, স্ট্যাটাস কোড ঠিক না থাকলে একটি ত্রুটি নিক্ষেপ করার জন্য। ত্রুটি catch
এ ধরা হয়েছে এবং উপযুক্ত লগ আউটপুট করা হয়েছে।
সারসংক্ষেপ
টাইপস্ক্রিপ্টে, ত্রুটির বিষয়বস্তু স্পষ্ট করতে টাইপ ব্যবহার করলে ত্রুটি পরিচালনা আরও নিরাপদ এবং পড়তে সহজ হয়। ত্রুটি পরিচালনার সময়, কী ধরণের ত্রুটি ঘটতে পারে তা স্পষ্ট করা এবং সেই অনুযায়ী পরিচালনা করা গুরুত্বপূর্ণ।
ত্রুটি
টাইপস্ক্রিপ্টে, Error
ক্লাসটি জাভাস্ক্রিপ্টের Error
ক্লাসকে প্রসারিত করে এবং এটি ত্রুটিগুলিকে উপস্থাপন করার জন্য একটি মৌলিক অবজেক্ট। Error
ক্লাস ব্যবহার করে, আপনি একটি অবজেক্ট তৈরি করতে পারেন যা একটি ত্রুটি বার্তা অন্তর্ভুক্ত করে এবং ত্রুটি পরিচালনা করতে পারেন।
Error
ক্লাসের মৌলিক বিষয়
Error
ক্লাস নিম্নরূপ ব্যবহার করা হয়।
1const error = new Error("Something went wrong!");
2console.log(error.message); // "Something went wrong!"
3console.log(error.name); // "Error"
প্রোপার্টিগুলি
Error
ক্লাসের নিচের বৈশিষ্ট্যগুলো রয়েছে:।
- message একটি স্ট্রিং যা ত্রুটির বার্তা উপস্থাপন করে।
- name
ত্রুটির নাম। ডিফল্টভাবে এটি
"Error"
, তবে একটি কাস্টম ত্রুটি ক্লাস তৈরি করে এটি পরিবর্তন করা যেতে পারে। - stack ডিবাগিংয়ের জন্য ব্যবহৃত স্ট্যাক ট্রেস তথ্য। একটি স্ট্রিং যা প্রকাশ করে কোন কোড ত্রুটি ঘটায় যখন এটি ঘটে।
কাস্টম ত্রুটি ক্লাস
ত্রুটি ক্লাস Error
সম্প্রসারণ করে নিজের ত্রুটি ক্লাস তৈরি করাও সম্ভব। এটি সেই পরিস্থিতিতে কার্যকর যেখানে নির্দিষ্ট ত্রুটি পরিচালনা প্রয়োজন হয়। উদাহরণস্বরূপ, এটি কার্যকর যখন আপনি HTTP রিকোয়েস্ট ত্রুটি বা ডেটাবেস ত্রুটির মতো বিভিন্ন ধরনের ত্রুটি পরিচালনা করতে চান।
কাস্টম ত্রুটি তৈরির উদাহরণ
1class CustomError extends Error {
2 constructor(message: string, public errorCode: number) {
3 super(message); // Call the constructor of the parent class 'Error'
4 this.name = "CustomError"; // Set the name of the error
5 }
6}
7
8const customError = new CustomError("Invalid operation", 400);
9console.log(customError.message); // "Invalid operation"
10console.log(customError.name); // "CustomError"
11console.log(customError.errorCode); // 400
CustomError
ক্লাস তৈরি করে এবং ত্রুটি কোডের মতো তথ্য যোগ করে, আপনি ত্রুটির বিষয়ে আরও ব্যাপক তথ্য পরিচালনা করতে পারেন।
Error
ক্লাসের উত্তরাধিকারিতা
TypeScript-এ, Error
ক্লাস সম্প্রসারণ করে একটি কাস্টম ত্রুটি ক্লাস তৈরি করার সময় কিছু বিষয় সম্পর্কে সতর্ক থাকা প্রয়োজন।
-
super()
কল করা কাস্টম ত্রুটি ক্লাসের কনস্ট্রাক্টরে, আপনাকেError
ক্লাসের কনস্ট্রাক্টর ডাকতে অবশ্যইsuper()
কল করতে হবে। এটি নিশ্চিত করে যেmessage
এবংstack
প্রোপার্টিগুলি সঠিকভাবে ইনিশিয়ালাইজ করা হয়েছে। -
বৈশিষ্ট্য যোগ করা যদি আপনি ত্রুটি অবজেক্টে অতিরিক্ত তথ্য যোগ করতে চান, ক্লাসের ভিতরে নতুন বৈশিষ্ট্য নির্ধারণ করুন। উপরের
CustomError
এ উদাহরণস্বরূপ, একটিerrorCode
প্রোপার্টি যোগ করা হয়েছে।
ত্রুটি নিক্ষেপ করা এবং ধরা
আপনি Error
ক্লাস বা কাস্টম ত্রুটি ক্লাস ব্যবহার করে ত্রুটি ছুঁড়ে এবং পরে তা ধরে ত্রুটিগুলি পরিচালনা করতে পারেন।
1function riskyOperation() {
2 throw new Error("Something went wrong during the operation");
3}
4
5try {
6 riskyOperation();
7} catch (error) {
8 if (error instanceof Error) {
9 console.error(error.message); // "Something went wrong during the operation"
10 console.error(error.name); // "Error"
11 }
12}
কাস্টম ত্রুটির ক্ষেত্রেও, নির্দিষ্ট ত্রুটি সনাক্ত করতে এবং সেগুলি যথাযথভাবে পরিচালনা করতে instanceof
ব্যবহার করুন।
1class CustomError extends Error {
2 constructor(message: string, public errorCode: number) {
3 super(message);
4 this.name = "CustomError";
5 }
6}
7
8try {
9 throw new CustomError("Database connection failed", 500);
10} catch (error) {
11 if (error instanceof CustomError) {
12 console.error(`Error: ${error.message}, Code: ${error.errorCode}`);
13 }
14}
সারসংক্ষেপ
TypeScript-এ Error
ক্লাসটি স্ট্যান্ডার্ড ত্রুটি পরিচালনার জন্য একটি মৌলিক ক্লাস। এছাড়াও, Error
ক্লাস সম্প্রসারিত করে কাস্টম ত্রুটি তৈরি করে, ত্রুটি প্রকার এবং অতিরিক্ত তথ্যের উপর ভিত্তি করে নমনীয় ত্রুটি পরিচালনা সম্ভব হয়।
আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।