ব্যতিক্রমগুলি সঠিকভাবে জানাতে এবং পরিচালনা করতে একটি সিস্টেমের জন্য প্রয়োজনীয় অনেকগুলি প্রয়োজনীয়তা রয়েছে। ধারণাটি বাস্তবায়নের জন্য কোনও ভাষা বেছে নেওয়ার জন্য অনেকগুলি বিকল্প রয়েছে।
ব্যতিক্রমগুলির জন্য প্রয়োজনীয়তা (কোনও নির্দিষ্ট ক্রমে নয়):
ডকুমেন্টেশন : কোনও ভাষাতে কোনও API নিক্ষেপ করতে পারে এমন ব্যতিক্রমগুলি দলিল করার একটি মাধ্যম থাকতে হবে। আদর্শভাবে এই ডকুমেন্টেশন মাধ্যমটি প্রোগ্রামারকে সংকলনকারী এবং আইডিইগুলিকে সহায়তা সরবরাহ করার জন্য মেশিন ব্যবহারযোগ্য হতে হবে।
ব্যতিক্রমী পরিস্থিতি প্রেরণ করুন : এটি একটি স্পষ্টতই, কোনও ফাংশনকে এমন পরিস্থিতি জানাতে দেয় যা প্রত্যাশিত ক্রিয়াকলাপ থেকে তথাকথিত কার্যকারিতা রোধ করে। আমার মতে এই জাতীয় পরিস্থিতিতে তিনটি বড় বিভাগ রয়েছে:
কোডের ২.১ টি বাগগুলি যার ফলে কিছু ডেটা অবৈধ হয়ে যায়।
২.২ কনফিগারেশন বা অন্যান্য বাহ্যিক সংস্থার সমস্যা।
২.৩ সম্পদ যা অন্তর্নিহিত অবিশ্বাস্য (নেটওয়ার্ক, ফাইল সিস্টেম, ডাটাবেস, শেষ ব্যবহারকারীগণ ইত্যাদি)। এগুলি কিছুটা কর্নার কেস যেহেতু তাদের অবিশ্বাস্য প্রকৃতির আমাদের তাদের বিক্ষিপ্ত ব্যর্থতাগুলি আশা করা উচিত। এক্ষেত্রে কি এই পরিস্থিতিগুলি ব্যতিক্রমী হিসাবে বিবেচিত হবে?
কোডটি পরিচালনা করার জন্য পর্যাপ্ত তথ্য সরবরাহ করুন : ব্যাতিক্রমী ক্যালিকে যথেষ্ট তথ্য সরবরাহ করতে হবে যাতে এটি প্রতিক্রিয়া জানায় এবং সম্ভবত পরিস্থিতিটি পরিচালনা করতে পারে। তথ্যটি পর্যাপ্ত পরিমাণেও হওয়া উচিত যাতে লগ করা হলে এই ব্যতিক্রমগুলি কোনও প্রোগ্রামারকে আপত্তিজনক বিবৃতি সনাক্ত এবং পৃথক করতে এবং সমাধান সরবরাহ করার জন্য পর্যাপ্ত প্রসঙ্গ সরবরাহ করে।
প্রোগ্রামারকে তার কোডের প্রয়োগের স্থিতির বর্তমান অবস্থা সম্পর্কে আত্মবিশ্বাস দিন : একটি সফ্টওয়্যার সিস্টেমের ব্যতিক্রম হ্যান্ডলিং ক্ষমতা প্রোগ্রামারের উপায় থেকে দূরে থাকাকালীন প্রয়োজনীয় সুরক্ষার ব্যবস্থা করার জন্য পর্যাপ্ত উপস্থিত থাকতে হবে যাতে তিনি কার্যটিতে দৃষ্টি নিবদ্ধ রাখতে পারেন হাত.
এইগুলি কভার করার জন্য নিম্নলিখিত ভাষাগুলি বিভিন্ন ভাষায় প্রয়োগ করা হয়েছিল:
চেক করা ব্যতিক্রমগুলি দলিলগুলি ব্যতিক্রম করার দুর্দান্ত উপায় প্রদান করে এবং তাত্ত্বিকভাবে সঠিকভাবে প্রয়োগ করার সময় সমস্ত কিছু ভাল হওয়ার যথেষ্ট আশ্বাস দেওয়া উচিত। তবে ব্যয়টি এমন যে অনেকেই ব্যতিক্রমগুলি গিলে ফেলে বা চেক না করা ব্যতিক্রম হিসাবে পুনরায় নিক্ষেপ করে কেবল বাইপাস করা আরও উত্পাদনশীল বোধ করেন। যখন অনুপযুক্তভাবে পরীক্ষিত ব্যতিক্রমগুলি ব্যবহার করা হয় তখন এর সমস্ত কার্যকারিতা হ্রাস পায়। এছাড়াও, পরীক্ষিত ব্যতিক্রমগুলি এমন একটি API তৈরি করতে অসুবিধা তৈরি করে যা সময়ে স্থিতিশীল থাকে। একটি নির্দিষ্ট ডোমেনের মধ্যে জেনেরিক সিস্টেমের প্রয়োগগুলি ব্যতিক্রমী পরিস্থিতির বোঝা এনে দেয় যা সম্পূর্ণরূপে পরীক্ষিত ব্যতিক্রমগুলি ব্যবহার করে বজায় রাখা কঠিন হয়ে পড়ে।
চেক করা ব্যতিক্রম - চেক করা ব্যতিক্রমের চেয়ে অনেক বেশি বহুমুখী তারা প্রদত্ত বাস্তবায়নের সম্ভাব্য ব্যতিক্রমী পরিস্থিতি যথাযথভাবে নথিভুক্ত করতে ব্যর্থ। তারা আদৌ যদি অ্যাড-হক ডকুমেন্টেশনের উপর নির্ভর করে। এটি এমন পরিস্থিতিতে তৈরি করে যেখানে কোনও মাধ্যমের অবিশ্বাস্য প্রকৃতি এমন একটি API দ্বারা মুখোশযুক্ত থাকে যা নির্ভরযোগ্যতার উপস্থিতি দেয়। এছাড়াও বিমূর্ত স্তরগুলির মাধ্যমে পিছনে সরে যাওয়ার সাথে সাথে এই ব্যতিক্রমগুলি ছুঁড়ে ফেলার সময় তাদের অর্থটি আলগা করে। যেহেতু তারা দুর্বলভাবে নথিভুক্ত রয়েছে কোনও প্রোগ্রামার তাদের নির্দিষ্ট করে লক্ষ্যবস্তু করতে পারে না এবং প্রায়শই এটি নিশ্চিত করার জন্য প্রয়োজনের তুলনায় অনেক বেশি বিস্তৃত জাল ফেলতে হয় যে তারা ব্যর্থ হয়, পুরো সিস্টেমটিকে নামিয়ে না দেয়। যা আমাদের গিলে দেওয়া সমস্যাটিতে চেক করা ব্যতিক্রমগুলির ডানদিকে ফিরে আসে।
মাল্টিস্টেট রিটার্নের প্রকারগুলি এখানে প্রত্যাশিত ফলাফল বা ব্যতিক্রমকে উপস্থাপনকারী কোনও বস্তুর প্রত্যাবর্তনের জন্য বিচ্ছিন্ন সেট, টিপল বা অন্যান্য অনুরূপ ধারণার উপর নির্ভর করা। এখানে কোনও স্ট্যাক আনওয়ানডিং নেই, কোডের মাধ্যমে কাটা কাটা নয়, সবকিছুই সাধারণত কার্যকর হয় তবে চালিয়ে যাওয়ার পূর্বে অবশ্যই ত্রুটির জন্য প্রত্যাবর্তন মানকে বৈধতা দিতে হবে। আমি এখনও এটি নিয়ে কাজ করি নি তাই অভিজ্ঞতার কাছ থেকে মন্তব্য করতে পারি না আমি স্বীকার করি এটি স্বাভাবিক প্রবাহকে অতিক্রম করে কিছু ব্যাতিক্রম সমাধান করে তবে এখনও এটি ক্লান্তিকর এবং ক্রমাগত "আপনার মুখের" হিসাবে চেক হওয়া ব্যতিক্রমগুলির মতো একই সমস্যার মুখোমুখি হবে।
সুতরাং প্রশ্নটি হ'ল:
এই বিষয়ে আপনার অভিজ্ঞতা কী এবং আপনার মতে কোনও ভাষা থাকার জন্য ভাল ব্যতিক্রম হ্যান্ডলিং সিস্টেম করার পক্ষে সেরা প্রার্থী কী?
সম্পাদনা: এই প্রশ্নটি লেখার কয়েক মিনিটের পরে আমি এই পোস্টটি জুড়ে এসেছি , ভুতুড়ে!
noexcept
C ++ তে গল্পটি দেখলে সি # এবং জাভাতেও ইএইচ-এর পক্ষে খুব ভাল অন্তর্দৃষ্টি পাওয়া যায়))