ব্যতিক্রম স্পেসিফিকেশন কেন খারাপ?


50

প্রায় 10+ বছর আগে স্কুলে ফিরে তারা আপনাকে ব্যতিক্রম স্পেসিফায়ার ব্যবহার করতে শেখাচ্ছিল। যেহেতু আমার ব্যাকগ্রাউন্ড তাদের মধ্যে অন্যতম টরভাল্ডিশ সি প্রোগ্রামার যারা জেদী হয়ে সি ++ এড়িয়ে চলেন না, তবে আমি কেবল বিক্ষিপ্তভাবে সি ++ এ শেষ করি এবং যখনই আমি শেখানো হয়েছিল তখন থেকেই আমি ব্যতিক্রম স্পেসিফায়ার ব্যবহার করি।

তবে, বেশিরভাগ সি ++ প্রোগ্রামার ব্যতিক্রম স্পেসিফাইকারদের উপর নির্ভর করে বলে মনে হচ্ছে। আমি বিতর্ক এবং বিভিন্ন সি ++ গুরু থেকে যুক্তি পড়েছেন এই মত । যতদূর আমি এটি বুঝতে পারি, এটি তিনটি জিনিসে ফুটে উঠেছে:

  1. ব্যতিক্রম স্পেসিফায়াররা একটি টাইপ সিস্টেম ব্যবহার করে যা বাকী ভাষার ("ছায়ার ধরণের সিস্টেম") এর সাথে সঙ্গতিপূর্ণ নয়।
  2. যদি কোনও ব্যতিক্রম স্পেসিফায়ারযুক্ত আপনার ফাংশনটি আপনাকে নির্দিষ্ট করা ব্যতীত অন্য কোনও কিছু ফেলে দেয় তবে প্রোগ্রামটি খারাপ, অপ্রত্যাশিত উপায়ে সমাপ্ত হবে।
  3. ব্যতিক্রম স্পেসিফায়ারগুলি আসন্ন সি ++ স্ট্যান্ডার্ডে সরানো হবে।

আমি কি এখানে কিছু মিস করছি বা এই সমস্ত কারণ রয়েছে?

আমার নিজস্ব মতামত:

1) সম্পর্কিত: তাই কি। সি ++ হ'ল সিন্ট্যাক্স-বুদ্ধিমানভাবে তৈরি করা এখন পর্যন্ত সবচেয়ে বেমানান প্রোগ্রামিং ভাষা। আমাদের কাছে ম্যাক্রোগুলি, গোটো / লেবেল, অপরিজ্ঞাত- / অনির্ধারিত- / বাস্তবায়ন-সংজ্ঞায়িত আচরণের হর্ড (হোর্ড?), দুর্বল-সংজ্ঞায়িত পূর্ণসংখ্যার প্রকারগুলি, সমস্ত অন্তর্নিহিত ধরণের প্রচারের বিধি, বন্ধু, অটো-এর মতো বিশেষ ক্ষেত্রে কীওয়ার্ড রয়েছে , নিবন্ধন করুন, স্পষ্টত ... এবং আরও অনেক কিছু। কেউ সম্ভবত সি / সি ++ তে সমস্ত অদ্ভুততার কয়েকটি ঘন বই লিখতে পারে। তাহলে লোকেরা কেন এই বিশেষ অসঙ্গতির বিরুদ্ধে প্রতিক্রিয়া ব্যক্ত করছে, যা ভাষার আরও অনেক বিপজ্জনক বৈশিষ্ট্যের তুলনায় একটি সামান্য ত্রুটি?

2 সম্পর্কে): এটি কি আমার নিজের দায়িত্ব নয়? আমি সি ++ তে মারাত্মক বাগ লিখতে পারি এমন আরও অনেক উপায় আছে, কেন এই বিশেষ ক্ষেত্রে আরও খারাপ? throw(int)ক্র্যাশ_টি লেখার পরে এবং ছুঁড়ে ফেলার পরিবর্তে আমিও দাবি করতে পারি যে আমার ফাংশনটি বিন্দুতে বিন্দু ফিরিয়ে দেয়, তারপরে একটি বন্য, স্পষ্ট স্পষ্ট টাইপকাস্ট তৈরি করে ক্র্যাশ_এটিতে একটি পয়েন্টার ফিরিয়ে দেয়। সি / সি ++ এর স্পিরিট সবসময়ই প্রোগ্রামারের উপর বেশিরভাগ দায়িত্ব রেখে চলেছে।

তারপরে সুবিধাগুলির কী হবে? সর্বাধিক সুস্পষ্ট হ'ল যদি আপনার ফাংশনটি আপনি নির্দিষ্ট করে ব্যতীত অন্য কোনও প্রকার স্পষ্টভাবে ছুঁড়ে ফেলার চেষ্টা করে তবে সংকলক আপনাকে একটি ত্রুটি দেবে। আমি বিশ্বাস করি যে এই (?) সম্পর্কিত মানটি পরিষ্কার। বাগগুলি কেবল তখনই ঘটবে যখন আপনার ফাংশনটি অন্য ফাংশনগুলিকে কল করে যা পরিবর্তিতভাবে ভুল ধরণের দেয়।

নির্বোধ, এমবেডেড সি প্রোগ্রামের জগত থেকে আসার পরে, আমি অবশ্যই নিশ্চিতভাবে জানতে চাই যে কোনও ফাংশন আমার কাছে কী নিক্ষেপ করবে। যদি ভাষাটিতে এমন কিছু সমর্থন করে থাকে তবে কেন এটি ব্যবহার করবেন না? বিকল্পগুলি মনে হয়:

void func() throw(Egg_t);

এবং

void func(); // This function throws an Egg_t

আমি মনে করি যে বড় মামলার সম্ভাবনা রয়েছে যে কলার দ্বিতীয় ক্ষেত্রে ট্রাই-ক্যাচ বাস্তবায়ন করতে অগ্রাহ্য / ভুলে যায়, প্রথম ক্ষেত্রে কম।

আমি এটি বুঝতে পেরেছি, এই দুটি ফর্মগুলির মধ্যে যে কোনও একটি হঠাৎ করে অন্য ধরণের ব্যতিক্রম ছুঁড়ে ফেলার সিদ্ধান্ত নিলে প্রোগ্রামটি ক্রাশ হয়ে যাবে। প্রথম ক্ষেত্রে কারণ এটি অন্য একটি ব্যতিক্রম নিক্ষেপ করার অনুমতি নেই, দ্বিতীয় ক্ষেত্রে কারণ এটি স্প্যানিশআইকুইকিউশন_t নিক্ষেপ করার জন্য কেউ প্রত্যাশা করেনি এবং তাই যেখানে প্রকাশ করা উচিত ছিল সেখানে অভিব্যক্তি ধরা পড়েনি।

পরবর্তী ক্ষেত্রে, প্রোগ্রামের সর্বোচ্চ স্তরে কিছু শেষ অবলম্বন ধরা (...) আসলে প্রোগ্রাম ক্রাশের চেয়ে ভাল বলে মনে হয় না: "আরে, আপনার প্রোগ্রামে কোথাও একটি অদ্ভুত, নিয়ন্ত্রণহীন ব্যতিক্রম ছুঁড়ে ফেলেছে । "। আপনি ব্যতিক্রম ছুঁড়ে ফেলেছিলেন এমন জায়গা থেকে একবার আপনি প্রোগ্রামটি পুনরুদ্ধার করতে পারবেন না, কেবলমাত্র আপনি যা করতে পারেন তা হল প্রোগ্রামটি থেকে বেরিয়ে আসা।

এবং ব্যবহারকারীর দৃষ্টিকোণ থেকে তারা "প্রোগ্রামটি সমাপ্ত করা হয়েছে। OSX এর ঠিকানায় ব্ল্যাব্লাবলা" বা আপনার প্রোগ্রামের একটি খারাপ বার্তা বাক্স "আনহানডেলড ব্যতিক্রম: মাইক্লাস" বলে ওএস থেকে কোনও খারাপ বার্তা বাক্স পেলে তারা কম যত্ন নিতে পারেন না। func.something "। বাগ এখনও আছে।


আসন্ন সি ++ স্ট্যান্ডার্ডের সাথে আমার কাছে ব্যতিক্রমের স্পেসিফায়ারগুলি ত্যাগ করা ছাড়া অন্য কোনও বিকল্প নেই। তবে "solidশ্বরের পবিত্রতা এটি বিবৃত করেছেন এবং এভাবে এটি হয়েছে" এর চেয়ে আমি কেন এগুলি খারাপ তা সম্পর্কে কিছু দৃ argument় যুক্তি শুনতে চাই। আমি যাদের তালিকাভুক্ত করেছি তার চেয়ে সম্ভবত তাদের বিরুদ্ধে আরও যুক্তি রয়েছে বা আমি বুঝতে পেরে তাদের পক্ষে আরও কিছু আছে?


30
আমি এটিকে "অভিজাত, প্রশ্ন হিসাবে ছদ্মবেশী" হিসাবে আটকানোর প্রলোভনে আছি। আপনি E.specs সম্পর্কে তিনটি বৈধ পয়েন্ট জিজ্ঞাসা করেছেন, তবে কেন আপনি আমাদের আপনার C ++ দিয়ে বিরক্ত করছেন - তাই-বিরক্তিকর-এবং-আমি-সি-এর মতো আরও ভাল রামব্লিংস?
মার্টিন বা

10
@ মার্টিন: কারণ আমি এটি উল্লেখ করতে চাই যে আমি উভয় পক্ষপাতদুষ্ট এবং সমস্ত বিবরণ দিয়ে আপ টু ডেট নই, তবে এও যে ভাষাটিকে আমি নির্বোধ এবং / অথবা এখনও ক্ষতিগ্রস্থ নয় বলে বিবেচনা করি। তবে এটিও যে সি এবং সি ++ ইতিমধ্যে অবিশ্বাস্যভাবে ত্রুটিযুক্ত ভাষা, সুতরাং একটি ত্রুটি কম-বেশি আসলেই কিছু যায় আসে না। পোস্টটি সম্পাদনা করার আগে পোস্টটি আসলেই আরও খারাপ ছিল :) ব্যতিক্রম সুনির্দিষ্টদের বিরুদ্ধে যুক্তিগুলিও যথেষ্ট বিষয়ভিত্তিক এবং তাই নিজেকে বিষয়গত না করে এগুলি নিয়ে আলোচনা করা শক্ত।

SpanishInquisition_t! অত্যধিক হাসিখুশি! ব্যতিক্রমগুলি ছুঁড়ে ফেলার জন্য স্ট্যাক ফ্রেম পয়েন্টার ব্যবহার করে আমি ব্যক্তিগতভাবে মুগ্ধ হয়েছি এবং মনে হয় এটি কোডটিকে আরও পরিষ্কার করে দিতে পারে। যাইহোক, আমি কখনই ব্যতিক্রমগুলি সহ আসলে কোডটি লিখিনি। আমাকে পুরানো ফ্যাশন বলুন, তবে ফিরতি মানগুলি আমার পক্ষে ঠিক কাজ করে।
শাহবাজ

@ শাহবাজ যেমন কেউ এই লাইনের মধ্যে পড়তে পারেন, আমিও বেশ পুরানো ed

2
গত কাল নিক্ষেপ করা হয় ছুড়ে ফেলে না throwed । এটি একটি শক্তিশালী ক্রিয়াপদ।
ট্রিগ

উত্তর:


48

ব্যতিক্রম চশমাগুলি খারাপ কারণ এগুলি দুর্বলভাবে প্রয়োগ করা হয়েছে, এবং তাই বাস্তবে খুব বেশি কিছু করা হয় না এবং এগুলি খারাপও কারণ তারা রান-টাইমটিকে অপ্রত্যাশিত ব্যতিক্রমগুলি পরীক্ষা করতে বাধ্য করে যাতে তারা ইউবিকে ডাকার পরিবর্তে () সমাপ্ত করতে পারে force , এটি পারফরম্যান্সের একটি উল্লেখযোগ্য পরিমাণ নষ্ট করতে পারে।

সুতরাং সংক্ষেপে, ব্যতিক্রম স্পেকগুলি ভাষায় কোডটিকে কোনওরকম সুরক্ষিত করার জন্য দৃ strongly়তার সাথে প্রয়োগ করা হয় না এবং নির্দিষ্ট হিসাবে সেগুলি প্রয়োগ করা ছিল একটি বড় পারফরম্যান্স ড্রেন।


2
তবে রান-টাইম চেকটি ব্যতিক্রম সম্পর্কিত দোষ নয়, বরং যে কোনও স্ট্যান্ডার্ডের যে অংশটি উল্লেখ করে যে ভুল টাইপ করা হলে একটি সমাপ্তি হওয়া উচিত। এই গতিশীল চেকের দিকে পরিচালিত প্রয়োজনীয়তাটি কেবল সরিয়ে দেওয়া এবং সংকলক দ্বারা সবকিছুকে স্থিতিশীলভাবে মূল্যায়ন করতে দেওয়া কি চতুর হবে না? মনে হচ্ছে আরটিটিআই হ'ল এখানে আসল অপরাধী, নাকি ...?

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

3
@ অরবওয়েভার: আমি মনে করি স্থিতিশীল চেকগুলি বেশ সম্ভব - ব্যতিক্রম বৈশিষ্টটি কোনও ফাংশনের স্পেসিফিকেশনের অংশ হবে (রিটার্ন মান হিসাবে), এবং ফাংশন পয়েন্টার, ভার্চুয়াল ওভাররাইডস ইত্যাদির সাথে সামঞ্জস্যপূর্ণ চশমা থাকতে হবে। মূল আপত্তিটি হ'ল এটি একটি সর্ব-বা-কিছুই নয় - স্থির ব্যতিক্রম স্পেস সহ ফাংশনগুলি উত্তরাধিকারের ফাংশনগুলি কল করতে পারে না could (সি ফাংশন কল করা ভাল হবে, যেহেতু তারা কিছুই ফেলতে পারে না)।
মাইক সিমুর

2
@ লন্ডিন: ব্যতিক্রমী চশমাগুলি সরানো হয়নি, কেবল অবচয় করা হয়েছে। লিগ্যাসি কোড যা সেগুলি ব্যবহার করে তা এখনও বৈধ থাকবে।
মাইক সিমুর

1
@ লন্ডিন: ব্যতিক্রম স্পেস সহ সি ++ এর পুরানো সংস্করণগুলি পুরোপুরি সামঞ্জস্যপূর্ণ। কোডটি আগে বৈধ থাকলে তারা সংকলন করতে বা অপ্রত্যাশিতভাবে চালাতে ব্যর্থ হয় না।
ডেড এমএমজি

18

কেউ তাদের ব্যবহার না করার একটি কারণ হ'ল আপনার প্রাথমিক অনুমানটি ভুল:

"সর্বাধিক সুস্পষ্ট [সুবিধা] হ'ল যদি আপনার ফাংশনটি আপনার নির্দিষ্ট করা ব্যতীত অন্য কোনও প্রকারের স্পষ্টভাবে ছুঁড়ে ফেলার চেষ্টা করে তবে সংকলক আপনাকে একটি ত্রুটি দেবে।"

struct foo {};
struct bar {};

struct test
{
    void baz() throw(foo)
    {
        throw bar();
    }
};

int main()
{
    test x;
    try { x.baz(); } catch(bar &b) {}
}

এই প্রোগ্রামটি কোনও ত্রুটি বা সতর্কতা সহ সংকলন করে

তদতিরিক্ত, যদিও ব্যতিক্রমটি ধরা পড়েছিল , প্রোগ্রামটি এখনও বন্ধ রয়েছে।


সম্পাদনা করুন: আপনার প্রশ্নের একটি বিন্দুটির জবাব দেওয়ার জন্য, ধরা (...) (বা আরও ভাল, ক্যাচ (এসটিডি :: এক্সপেশন &) বা অন্যান্য বেস ক্লাস, এবং তারপরে ক্যাচ (...) এখনও কার্যকর যদি আপনি না করেন তবে কি ভুল হয়েছে ঠিক জানি।

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


4
@ লন্ডিন এটি কোনও সতর্কতা ছাড়াই সংকলিত । এবং না, আপনি পারবেন না। নির্ভরযোগ্যভাবে না। আপনি ফাংশন পয়েন্টারগুলির মাধ্যমে কল করতে পারেন বা এটি একটি ভার্চুয়াল সদস্য ফাংশন হতে পারে, এবং উত্পন্ন শ্রেণিটি ডেরাইভড এক্সসেপশন নিক্ষেপ করে (যা বেস ক্লাসটি সম্ভবত জানতে পারে না)।
কাজ ড্রাগন

শক্ত ভাগ্য। এমবারকাডেরো / বোরল্যান্ড এর জন্য একটি সতর্কতা দেয়: "থ্রো ব্যতিক্রম ব্যতিক্রম স্পেসিফায়ার লঙ্ঘন করে"। স্পষ্টতই জিসিসি দেয় না। যদিও তারা কোনও সতর্কতা বাস্তবায়ন করতে পারেনি তার কোনও কারণ নেই। এবং একইভাবে, একটি স্থিতিশীল বিশ্লেষণ সরঞ্জাম সহজেই এই বাগটি খুঁজে পেতে পারে।

14
@ লন্ডিন: দয়া করে মিথ্যা তথ্য বিতর্ক এবং পুনরাবৃত্তি শুরু করবেন না। আপনার প্রশ্নটি ইতিমধ্যে কিছু বাজে কিছু ছিল এবং মিথ্যা জিনিস দাবি করা কোনও উপকারে আসে না। একটি স্থিতিশীল বিশ্লেষণ সরঞ্জাম এটি ঘটে কিনা তা আবিষ্কার করতে পারে না; এটি করা হ্যালটিং সমস্যা সমাধানের সাথে জড়িত। তদতিরিক্ত, এটি পুরো প্রোগ্রামটি বিশ্লেষণ করা প্রয়োজন, এবং প্রায়শই পুরো উত্স উপলব্ধ হয় না।
ডেভিড থর্নলি

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

1
@ লন্ডিন একটি ভাল প্রশ্ন উত্তরটি হ'ল, সাধারণভাবে, আপনি জানেন না যে আপনি যে ফাংশনগুলি কল করছেন সেগুলি ব্যতিক্রম ছুঁড়ে ফেলবে কিনা, তাই নিরাপদ অনুমান যে তারা সবাই তা করে। এগুলি কোথায় ধরতে হবে এমন একটি প্রশ্ন যা আমি স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 4025667/… এ উত্তর দিয়েছি । ইভেন্ট হ্যান্ডলারগুলি বিশেষত প্রাকৃতিক মডিউল সীমানা। ব্যতিক্রমকে জেনেরিক উইন্ডো / ইভেন্ট সিস্টেমে (উদাহরণস্বরূপ) পালাতে দেওয়া, শাস্তি পেতে চলেছে। প্রোগ্রামটি যদি সেখানে টিকে থাকে তবে হ্যান্ডলারের সমস্ত তাদের ধরতে হবে।
কাজ ড্রাগন

17

অ্যান্ডারস হেজলসবার্গের সাথে এই সাক্ষাত্কারটি বেশ বিখ্যাত। এতে তিনি ব্যাখ্যা করেছেন যে কেন সি # ডিজাইন টিম চেক ব্যতিক্রমগুলি প্রথম স্থানে ফেলে দেয়। সংক্ষেপে, দুটি প্রধান কারণ রয়েছে: সংস্করণযোগ্যতা এবং স্কেলিবিলিটি।

আমি জানি ওপি সি ++ তে ফোকাস করছে যেখানে হিজলসবার্গ সি # নিয়ে আলোচনা করছেন, তবে হিজলসবার্গ যে পয়েন্টগুলি তৈরি করেছেন তা সি ++ এর ক্ষেত্রেও পুরোপুরি প্রযোজ্য।


5
"হিজলসবার্গ যে পয়েন্টগুলি তৈরি করেন সেগুলি সি ++ এর জন্যও পুরোপুরি প্রযোজ্য" .. ভুল! জাভাতে প্রয়োগ হিসাবে চেক করা ব্যতিক্রম কলারকে তাদের (এবং / অথবা কলারের কলার ইত্যাদি) মোকাবেলা করতে বাধ্য করে। ব্যতিক্রম চশমা C ++ (যখন প্রশংসনীয় দুর্বল ও অকেজো) শুধুমাত্র একটি একক "ফাংশন-কল-সীমানা" -এর ক্ষেত্রে প্রযোজ্য এবং না না "Call স্ট্যাক আপ সঞ্চারিত" মত চেক করা ব্যতিক্রম না।
মার্টিন বা

3
@ মার্টিন: আমি আপনার সাথে সি ++ তে ব্যতিক্রম স্পেসের আচরণ সম্পর্কে একমত। তবে আমার যে বাক্যাংশটি আপনি উদ্ধৃত করেছেন "হিজলসবার্গ যে পয়েন্টগুলি সি ++ এর ক্ষেত্রেও পুরোপুরি প্রযোজ্য" তা বোঝায়, হ্যাজলসবার্গ যে পয়েন্টগুলি সি ++ স্পেসের পরিবর্তে তৈরি করেন তা বোঝায়। অন্য কথায়, আমি এখানে ব্যতিক্রম প্রচারের পরিবর্তে প্রোগ্রামটির সংস্করণযোগ্যতা এবং স্কেল্যাবিলিটি সম্পর্কে কথা বলছি।
সিজারগন

3
আমি হিজলসবার্গের সাথে বেশ তাড়াতাড়ি অসম্মতি জানিয়েছিলাম: "ব্যতিক্রমগুলি যাচাই করা সম্পর্কে আমি যে উদ্বেগ নিয়েছি তা হ'ল তারা প্রোগ্রামারদের হাতে রাখা হাতকড়া You চেক করা ব্যতিক্রমগুলি তাদের কোনওরকম সহায়তা করছে না It এই স্বৈরশাসক এপিআই ডিজাইনাররা আপনার ব্যতিক্রম পরিচালনা কীভাবে করবেন তা আপনাকে বলছে sort " --- ব্যতিক্রমগুলি যাচাই করা হচ্ছে বা না হওয়াতে, আপনি যে API টি ফোন করছেন তার ব্যতিক্রমগুলি আপনাকে এখনও পরিচালনা করতে হবে। চেক করা ব্যতিক্রমগুলি কেবল এটিকে স্পষ্ট করে তোলে।
কোয়ান্ট_দেব

5
@ কোয়ান্ট_দেব: না, আপনি যে API টি ফোন করছেন তার ব্যতিক্রমগুলি আপনাকে পরিচালনা করতে হবে না। একটি পুরোপুরি বৈধ বিকল্প হ'ল ব্যতিক্রমগুলি পরিচালনা না করা এবং আপনার কলারকে পরিচালনা করার জন্য কল স্ট্যাকটি বুদবুদ করতে দিন।
সিজারগন

4
@ সিজারগন ব্যতিক্রমগুলি পরিচালনা না করে কীভাবে তাদের পরিচালনা করতে হয় তা বেছে নেওয়া।
কোয়ান্ট_দেব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.