যতটা সম্ভব উত্থাপিত হয় যেখানেই তার ব্যতিক্রমকে কীভাবে মোকাবেলা করা উচিত সে সম্পর্কে আমি এই প্রশ্নের পরামর্শটি পড়ছি ।
আমার সর্বোত্তম অনুশীলনের বিষয়ে দ্বিধাদ্বন্দ্ব হ'ল যে কোনও একটি এনাম ফেরত দেওয়ার জন্য চেষ্টা / ক্যাপচার / অবশেষে ব্যবহার করা উচিত (বা কোনও মান এমন, যা ত্রুটির জন্য 0, ঠিকানার জন্য 1, সতর্কতার জন্য 2, কেসের উপর নির্ভর করে) ব্যবহার করা উচিত একটি উত্তর সর্বদা যথাযথ থাকে, বা কলিং অংশটি এটি মোকাবেলা করতে পারে এমন কোনওটি ব্যতিক্রম হওয়া উচিত?
আমি যেটি সংগ্রহ করতে পারি সেগুলি থেকে কেসটির উপর নির্ভর করে এটি ভিন্ন হতে পারে, সুতরাং মূল পরামর্শটি বিজোড় বলে মনে হচ্ছে।
উদাহরণস্বরূপ, ওয়েব সার্ভিসে আপনি সর্বদা অবশ্যই একটি অবস্থার ফিরে যেতে চান, সুতরাং কোনও ব্যতিক্রম ঘটনাস্থলে মোকাবেলা করতে হবে, তবে একটি ফাংশনের ভিতরে বলতে দিন যে পোস্টের মাধ্যমে কিছু তথ্য পোস্ট / পায়, আপনি চাইবেন ব্যতিক্রম (উদাহরণস্বরূপ 404 এর ক্ষেত্রে) কেবল এটির মধ্যে দিয়ে যাওয়ার জন্য fired যদি আপনি এটি না করেন তবে আপনাকে ফলাফলের কলিং অংশটি (ত্রুটি: 404) এর পাশাপাশি ফলাফলটিও জানাতে কিছু উপায় তৈরি করতে হবে।
যদিও ডেটা পায় / পোস্ট করে এমন সহায়ক সহায়ক ফাংশনের অভ্যন্তরে 404 টি ব্যতিক্রম করার চেষ্টা করা সম্ভব, আপনার উচিত? কেবলমাত্র আমিই প্রোগ্রামটিতে স্টেটগুলি বোঝাতে (এবং অবশ্যই তাদের যথাযথভাবে ডকুমেন্ট করলাম) একটি ছোট ব্যবহার করি, এবং তারপরে এই তথ্যটি স্যানিটি বৈধকরণের উদ্দেশ্যে (সবকিছু ঠিক আছে / ত্রুটি পরিচালনা করা) বাইরে ব্যবহার করব?
আপডেট: আমি মূল শ্রেণিবিন্যাসের জন্য মারাত্মক / অ-মারাত্মক ব্যতিক্রম আশা করছিলাম, তবে আমি উত্তরগুলি কুসংস্কার না করার জন্য এটি অন্তর্ভুক্ত করতে চাইনি। প্রশ্নটি কী তা সম্পর্কে আমি স্পষ্ট করে বলতে পারি: নিক্ষিপ্ত ব্যতিক্রমগুলি পরিচালনা করা, ব্যতিক্রম ছোঁড়া নয়। কাঙ্ক্ষিত প্রভাবটি কী: একটি ত্রুটি সনাক্ত করুন এবং এটি থেকে পুনরুদ্ধার করার চেষ্টা করুন। যদি পুনরুদ্ধার সম্ভব না হয় তবে সর্বাধিক অর্থপূর্ণ প্রতিক্রিয়া সরবরাহ করুন।
আবার, HTTP get / post উদাহরণ সহ প্রশ্নটি হ'ল, আপনার কি নতুন কোনও অবজেক্ট সরবরাহ করা উচিত যা মূল আহ্বানকারীটির কী ঘটেছে তা বর্ণনা করে? এই সহায়িকা যদি আপনি যে লাইব্রেরিতে ব্যবহার করছেন আপনি এটি অপারেশনের জন্য একটি স্ট্যাটাস কোড সরবরাহ করবেন কিনা তা প্রত্যাশা করবেন, বা আপনি এটি চেষ্টা-বাধা ব্লকে অন্তর্ভুক্ত করবেন? আপনি যদি এটি ডিজাইনিং করে থাকেন, আপনি কি কোনও স্থিতি কোড সরবরাহ করবেন বা একটি ব্যতিক্রম ছুঁড়বেন এবং তার পরিবর্তে উচ্চ স্তরের এটি কোনও স্থিতি কোড / বার্তায় অনুবাদ করতে দেবেন?
সংক্ষিপ্তসার: যদি কোনও টুকরো কোড ব্যতিক্রমের পরিবর্তে কোনও স্থিতি কোড দেয় যা ফল দেয় তবে তার সাথে আপনি কীভাবে চয়ন করেন?