ব্যতিক্রম এবং ত্রুটির মধ্যে পার্থক্য

ব্যতিক্রম এবং ত্রুটির মধ্যে পার্থক্য
ব্যতিক্রম এবং ত্রুটির মধ্যে পার্থক্য

ভিডিও: ব্যতিক্রম এবং ত্রুটির মধ্যে পার্থক্য

ভিডিও: ব্যতিক্রম এবং ত্রুটির মধ্যে পার্থক্য
ভিডিও: থ্রোব্যাক: সিম্বিয়ান OS বিবর্তন (S60, Belle, Meego) 2024, নভেম্বর
Anonim

ব্যতিক্রম বনাম ত্রুটি

যখন একটি প্রোগ্রাম চলছে তখন অপ্রত্যাশিত আচরণ ঘটতে বাধ্য। এটি ব্যতিক্রম বা ত্রুটির কারণে হতে পারে। ব্যতিক্রম হল ঘটনা, যা স্বাভাবিক প্রোগ্রাম প্রবাহকে ব্যাহত করতে পারে। ত্রুটিগুলি এমন শর্ত যা অপূরণীয় বলে বিবেচিত হতে পারে। ব্যতিক্রমগুলি বেশিরভাগই অ্যাপ্লিকেশনের সাথে সম্পর্কিত, যখন ত্রুটিগুলি সেই সিস্টেমের সাথে সম্পর্কিত যা প্রোগ্রামটি চলছে৷

একটি ব্যতিক্রম কি?

ব্যতিক্রম একটি ইভেন্ট, যা স্বাভাবিক প্রোগ্রাম প্রবাহকে ব্যাহত করতে পারে। ব্যতিক্রম নামটি "অসাধারণ ঘটনা" থেকে এসেছে। একটি ব্যতিক্রম নিক্ষেপ একটি ব্যতিক্রম বস্তু তৈরি এবং রানটাইম সিস্টেমে এটি হস্তান্তর করার প্রক্রিয়া।ব্যতিক্রম বস্তুটি যে পদ্ধতিতে ব্যতিক্রম ঘটেছে তা দ্বারা তৈরি করা হয়। ব্যতিক্রম বস্তুতে ব্যতিক্রমের ধরন এবং বর্ণনার মতো দরকারী তথ্য রয়েছে। রানটাইম সিস্টেম যখন ব্যতিক্রম বস্তুটি গ্রহণ করে, তখন এটি বিপরীত ক্রমে (যে পদ্ধতিগুলিকে বলা হয়েছিল) অতিক্রম করে কল স্ট্যাকের মধ্যে এটি পরিচালনা করার জন্য কাউকে খুঁজে বের করার চেষ্টা করবে। কল স্ট্যাক হল পদ্ধতির অর্ডারকৃত তালিকা, যে পদ্ধতিতে ব্যতিক্রম ঘটেছে তার আগে কল করা হয়েছিল। রানটাইম সিস্টেম সফল হয় যদি এটি একটি ব্যতিক্রম হ্যান্ডলার সহ একটি পদ্ধতি খুঁজে পায়। ব্যতিক্রম হ্যান্ডলার হল কোডের একটি ব্লক যা আনুষ্ঠানিকভাবে উক্ত ব্যতিক্রমটি পরিচালনা করতে পারে। যদি রানটাইম সিস্টেম একটি উপযুক্ত হ্যান্ডলার খুঁজে পায় (অর্থাৎ ব্যতিক্রমের ধরনটি পরিচালনা করা যায় এমন ধরণের সাথে মেলে), এটি হ্যান্ডলারের কাছে ব্যতিক্রম বস্তুটি প্রেরণ করবে। একে বলা হয় ব্যতিক্রম ধরা। যাইহোক, যদি ব্যতিক্রম পরিচালনা করা না যায় তবে প্রোগ্রামটি বন্ধ হয়ে যাবে। জাভাতে, ব্যতিক্রমগুলি ‘থ্রোয়েবল ক্লাস’ থেকে উত্তরাধিকারসূত্রে পাওয়া যায়। NullPointerException এবং ArrayIndexOutOfBoundsException জাভাতে দুটি সাধারণ ব্যতিক্রম।

একটি ত্রুটি কি?

একটি ত্রুটি এমন একটি শর্ত যা পুনরুদ্ধারযোগ্য হিসাবে বিবেচিত হতে পারে যেমন প্রোগ্রামের জন্য উপলব্ধ যা থেকে বেশি পরিমাণ মেমরি প্রয়োজন। রানটাইমে এই ত্রুটিগুলি পরিচালনা করা যাবে না। যদি একটি ত্রুটি ঘটে, প্রোগ্রামটি বন্ধ হয়ে যাবে। জাভাতে, থ্রোয়েবল ক্লাস থেকে ত্রুটিগুলি উত্তরাধিকারসূত্রে পাওয়া যায়। ত্রুটিগুলি সাধারণত গুরুতর সমস্যার জন্য দাঁড়ায় যা প্রোগ্রামার (বা অ্যাপ্লিকেশন) ধরার চেষ্টা করবেন না। ত্রুটিগুলি কেবল অস্বাভাবিক অবস্থা, যা কখনই স্বাভাবিক পরিস্থিতিতে ঘটবে বলে আশা করা যায় না, এবং তাই কখনই পূর্বাভাস দেওয়া হয় না। উদাহরণস্বরূপ, OutOfMemoryError, StackOverflowError এবং ThreadDead এই ধরনের ত্রুটি। পদ্ধতিতে কখনোই ত্রুটির জন্য হ্যান্ডলার থাকা উচিত নয়।

ব্যতিক্রম এবং ত্রুটির মধ্যে পার্থক্য কী?

একটি প্রোগ্রাম কার্যকর করার সময় ত্রুটি এবং ব্যতিক্রম উভয়ই অবাঞ্ছিত ঘটনা। যাইহোক, তাদের মূল পার্থক্য রয়েছে। ব্যতিক্রমগুলি প্রোগ্রামার দ্বারা পূর্বাভাস করা যেতে পারে, যখন একটি ত্রুটি পূর্বাভাস করা কঠিন।ব্যতিক্রম চেক বা আনচেক করা যেতে পারে. কিন্তু ত্রুটি সবসময় আনচেক করা হয়. ব্যতিক্রমগুলি সাধারণত প্রোগ্রামার দ্বারা সৃষ্ট একটি ত্রুটি নির্দেশ করে। যাইহোক, সিস্টেমের ত্রুটি বা সম্পদের অনুপযুক্ত ব্যবহারের কারণে ত্রুটি ঘটে। অতএব, ব্যতিক্রমগুলি অ্যাপ্লিকেশন স্তরে পরিচালনা করা উচিত, যখন ত্রুটিগুলি সিস্টেম স্তরে যত্ন নেওয়া উচিত (শুধুমাত্র সম্ভব হলে)। একটি ব্যতিক্রম পরিচালনা করার পরে, আপনি স্বাভাবিক প্রোগ্রাম প্রবাহে ফিরে যাওয়ার নিশ্চয়তা পাবেন। কিন্তু একটি ত্রুটি ধরা পড়লেও, প্রোগ্রামার প্রথম স্থানে কীভাবে এটি পরিচালনা করবেন তা জানেন না। প্রথাগত ত্রুটি পরিচালনার বিপরীতে, ব্যতিক্রমগুলি ত্রুটি-হ্যান্ডলিং কোডকে নিয়মিত কোড থেকে আলাদা করার অনুমতি দেয়৷

প্রস্তাবিত: