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