ব্যতিক্রম শ্রেণিবিন্যাসের কোন তত্ত্ব আছে?


18

আমি কয়েক ডজন প্রোগ্রামিং ভাষার সাথে পরিচিত যার কোনওভাবে ব্যতিক্রম রয়েছে, তবুও আমি দুটি "প্যাথলজিকাল" প্রবণতা প্রত্যক্ষ করতে এসেছি।

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

  2. ভাষা দ্বারা সংজ্ঞায়িত ব্যতিক্রমগুলি খুব কমই ব্যবহারকারী প্রোগ্রাম দ্বারা পুনরায় ব্যবহৃত হয়। সাধারণত এক বা দুটি জনপ্রিয় ব্যতিক্রম হবে (উদাহরণস্বরূপ "প্রয়োগ করা হবে না")। যদিও বেশিরভাগ সময় প্রোগ্রামাররা তাদের নিজস্ব ব্যতিক্রম তৈরি করবে। (এটির সাথে তুলনা করুন, উদাহরণস্বরূপ, নতুন সংখ্যার প্রকার বা নতুন সংগ্রহের প্রকার তৈরি করা)।

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

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

এই কাগজটি যুক্তি দেয় যে অলস ফাংশনাল প্রোগ্রামিং কেবল অন্তর্নির্মিত ব্যতিক্রম হ্যান্ডলিং প্রক্রিয়াটিকে অপ্রয়োজনীয় করে তোলে না, ব্যতিক্রমগুলি ব্যবহার করে এমন প্রোগ্রামগুলিকে বিকাশ ও রূপান্তর করার জন্য একটি শক্তিশালী সরঞ্জাম সরবরাহ করে

(ব্যতিক্রমগুলির একটি কার্যকরী তত্ত্ব, মাইক স্পাইভি, 1988)

তবে আমি মনে করি ব্যতিক্রমগুলি ভাল। আমি ব্যতিক্রমগুলি ব্যবহার করে এমন প্রোগ্রামগুলিকে রূপান্তর করতে চাই না, বিপরীতে, আমি ব্যতিক্রমগুলির ব্যবহারকে কম বিশৃঙ্খল করে তুলতে চাই।

প্রশ্নটি:

ব্যতিক্রম একটি তত্ত্ব আছে? যদি তাই হয়, এটা কি বলা হয়? কোনটি যদি, কোনও ভিত্তিটি এর ভিত্তিতে রূপরেখার কাজ করে?


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

আপনি ব্যতিক্রমগুলি ধারাবাহিকতা তত্ত্বের একটি উপসেট বিবেচনা করতে পারেন। দেখুন en.wikipedia.org/wiki/Continuation
jmite

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

"ভাষা দ্বারা সংজ্ঞায়িত ব্যতিক্রমগুলি খুব কমই ব্যবহারকারী প্রোগ্রাম দ্বারা পুনরায় ব্যবহৃত হয়।" এটাই সত্যি! কাস্টম ব্যতিক্রম সংজ্ঞা দেওয়ার খুব কমই প্রয়োজন is উদাহরণস্বরূপ পাইথন এবং এর স্টডলিব 160 ব্যতিক্রমের মতো কিছু সংজ্ঞায়িত করে। আপনি যে ব্যতিক্রম সম্পর্কে ভাবছেন সেগুলি সংজ্ঞায়িত করা হয়নি খুব ছোট। এর মধ্যে কিছু (বেশিরভাগ?) ব্যাপকভাবে জানা যায় না। উদাহরণস্বরূপ, প্রতিটি কাস্টম ধারকটির LookupErrorজন্য এটি পুরোপুরি সূক্ষ্ম হবে , তবে আমি প্রচুর লোকজনও জানি না যে এটি বিদ্যমান।
বাকুরিউ

1
@ জমিট এই বিষয়টি বেনজামিন সি পিয়ার্সের বইয়ের ধরণ এবং প্রোগ্রামিং ভাষা থেকে প্রাপ্ত হওয়ার আগে আমার ব্যতিক্রমগুলির সাথে আরও একটি মুখোমুখি হয়েছিল। যেখানে তিনি কোনও ফাংশনের ধরণ সংজ্ঞায়নের প্রসঙ্গে ত্রুটির উল্লেখ করেছেন। অর্থাৎ তার দৃষ্টিকোণ থেকে, ত্রুটিগুলি ফাংশন থেকে ফিরে আসা আরও একটি মান ((এবং অন্যান্য যুক্তির সাথে তারা একটি সম্পূর্ণ প্রকার গঠন করে, যদি আমাকে এটি বলার অনুমতি দেওয়া হয়)।
wvxvw

উত্তর:


8

বেশ কয়েকটি তাত্ত্বিক তদন্ত সহ ব্যতিক্রমগুলিতে প্রচুর প্রকাশনা রয়েছে। এখানে একটি অপরিকল্পিত এবং কিছু উদাহরণ সহ সম্পূর্ণ তালিকা থেকে দূরে। দুঃখিত, আরও বেশি কেন্দ্রীভূত জবাবের জন্য আমার কাছে এই মুহূর্তে সময় নেই।

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

বাহ, অনেক অনেক ধন্যবাদ! ইতিবাচক উত্তরটি পেতে আমাকে কয়েক মাস সময় লাগবে (আরও বেশি না হলে) :) এখন আমি কয়েকটি বইয়ের মধ্যে ছিড়েছি যেখানে শুরু করতে হবে তা জানে না!
wvxvw

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

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

6

কোনও তত্ত্ব আছে কিনা তা আমি জানি না, তবে একটি উদীয়মান বাস্তববাদী পরীক্ষামূলক বিজ্ঞান থাকতে পারে।

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

1991 সালের নভেম্বরে পালো অল্টো [সি ++ মানীকরণ] সভায় আমরা জিম মিচেল (সান থেকে, পূর্বে জেরক্স পার্কের) থেকে ব্যক্তিগত অভিজ্ঞতা এবং ডেটা উভয়ই সমেত সমাপ্তি শব্দার্থবিজ্ঞানের যুক্তিগুলির একটি উজ্জ্বল সংক্ষিপ্ত বিবরণ শুনলাম। জিম 20 বছরের সময়কালে অর্ধ ডজন ভাষায় ব্যতিক্রম হ্যান্ডলিং ব্যবহার করেছিলেন এবং জেরক্সের সিডার / মেসা সিস্টেমের অন্যতম প্রধান ডিজাইনার এবং প্রয়োগকারী হিসাবে পুনরায় শুরুকরণ শব্দার্থবিদ্যার প্রবক্তা ছিলেন। তার বার্তা পুনরায় শুরু করার চেয়ে সমাপ্তি পছন্দ; এটি মতামতের বিষয় নয়, বছরের অভিজ্ঞতার বিষয়। পুনরায় শুরু করা প্রলোভনসঙ্কুল, তবে বৈধ নয়। তিনি এই বিবৃতিটিকে বেশ কয়েকটি অপারেটিং সিস্টেমের অভিজ্ঞতা দিয়ে সমর্থন করেছিলেন। মূল উদাহরণটি সিডার / মেসা ছিল: এটি এমন লোকেরা লিখেছিল যারা পুনরায় সংস্থান পছন্দ করেছিল এবং ব্যবহার করেছিল তবে দশ বছর ব্যবহারের পরে, অর্ধ মিলিয়ন লাইন সিস্টেমে পুনরায় শুরু করার কেবলমাত্র একটি ব্যবহার বাকি ছিল - এবং এটি একটি প্রসঙ্গ অনুসন্ধান ছিল। যেহেতু এ জাতীয় প্রসঙ্গত তদন্তের জন্য পুনরায় শুরু করা আসলে প্রয়োজনীয় ছিল না, তারা এটিকে সরিয়ে নিয়েছে এবং সিস্টেমের সেই অংশে একটি উল্লেখযোগ্য গতি বৃদ্ধি পেয়েছে। দশ বছরে - পুনরায় শুরু হওয়া প্রতিটি ক্ষেত্রেই এটি একটি সমস্যা হয়ে দাঁড়িয়েছিল এবং আরও উপযুক্ত নকশা এটি প্রতিস্থাপন করেছিল। মূলত, পুনরায় শুরু করার প্রতিটি ব্যবহার বিমূর্ত বিভেদ পৃথক স্তরের রাখতে ব্যর্থতার প্রতিনিধিত্ব করেছিল। দশ বছরে - পুনরায় শুরু হওয়া প্রতিটি ক্ষেত্রেই এটি একটি সমস্যা হয়ে দাঁড়িয়েছিল এবং আরও উপযুক্ত নকশা এটি প্রতিস্থাপন করেছিল। মূলত, পুনরায় শুরু করার প্রতিটি ব্যবহার বিমূর্ত বিভেদ পৃথক স্তরের রাখতে ব্যর্থতার প্রতিনিধিত্ব করেছিল। দশ বছরে - পুনরায় শুরু হওয়া প্রতিটি ক্ষেত্রেই এটি একটি সমস্যা হয়ে দাঁড়িয়েছিল এবং আরও উপযুক্ত নকশা এটি প্রতিস্থাপন করেছিল। মূলত, পুনরায় শুরু করার প্রতিটি ব্যবহার বিমূর্ত বিভেদ পৃথক স্তরের রাখতে ব্যর্থতার প্রতিনিধিত্ব করেছিল।

সি ++ এ আসল জয়টি হ'ল আরআইআই , যা ত্রুটির সময় রিসোর্স ডিএলোকেশন পরিচালনা করতে খুব সহজ করে তোলে। (এটি প্রয়োজনীয় এবং throwএবং try- এর সাথে সামঞ্জস্য করে না catchতবে এর অর্থ আপনার প্রয়োজন নেই finally))

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

লোকেরা যে বিষয়টি বছরের পর বছর ধরে শিখেছে বলে মনে হচ্ছে তা হ'ল ব্যতিক্রমের নির্দিষ্টকরণগুলি কোনও ভাষায় সঠিকভাবে toোকানো শক্ত। উদাহরণস্বরূপ এটি দেখুন: http://www.gotw.ca/publications/mill22.htm , বা এটি: http://www.gotw.ca/gotw/082.htm । (এবং এটি কেবল সি ++ নয়, জাভা প্রোগ্রামারদের চেক বনাম চেক করা ব্যতিক্রমগুলির সাথে তাদের অভিজ্ঞতা সম্পর্কে দীর্ঘ যুক্তি রয়েছে ))

ব্যাতিক্রমের ইতিহাস সম্পর্কে একটু। ক্লাসিক পেপারটি হ'ল: জন বি গুডেনো: "ব্যতিক্রম হ্যান্ডলিং: ইস্যু এবং প্রস্তাবিত স্বরলিপি," যোগাযোগ । এসিএম 18 (12): 683-696, 1975. তবে ব্যতিক্রমগুলি তার আগে জানা ছিল। মেসার এগুলি 1974 সালে ছিল এবং পিএল / আমি তাদেরও পেয়েছিলাম। ১৯ 1980০ সালের আগে আদার একটি ব্যতিক্রমী ব্যবস্থা ছিল। আমি বিশ্বাস করি যে সি ++ এর ব্যতিক্রমগুলি প্রায় 1976 সাল থেকে বার্বারা লিসকভের সিএলইউ প্রোগ্রামিং ভাষার সাথে অভিজ্ঞতার দ্বারা প্রভাবিত হয়েছিল। বার্বারা লিসকভ: প্রোগ্রামিং ভাষার ইতিহাসে "সিএলইউর ইতিহাস " --- II , টমাস জে বার্গিন, জুনিয়র এবং রিচার্ড জি। গিবসন, জুনিয়র (অ্যাড।)। পৃষ্ঠা 471-510, এসিএম, 1996


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

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

@ বিচরণ যুক্তি আমি উপবিষ্ট হয়েছি কারণ আপনি ব্যাখ্যা করেছেন যে কেন সি ++ এক্সপেটিওগুলি সুসংবাদযুক্ত এবং বৈশিষ্ট্যগুলির শিক্ষিত অন্তর্ভুক্তি ভাষাটি ধ্বংস করতে পারে।
Val,

@wvxvw very strong objectionসি ++ এর ব্যতিক্রমগুলির বিরুদ্ধে দুটি ঘটনা এসেছে: এখানে কোন finallyনির্মাণ নেই এবং অন্য কেউ ব্যতিক্রম ব্যবহার করে না। প্রথম সমস্যাটি দ্বিতীয়টিকেও বাড়িয়ে তোলে। এটি হ'ল, যখন আপনার কোনও নেই finally, যখন ব্যতিক্রম ঘটে তখন আপনি সংস্থানটি বন্ধ করতে পারবেন না। যেহেতু কেউ ব্যতিক্রম ব্যবহার করে না, সমস্ত ফাংশন / এপিআই এগুলি এড়ায়, আপনার কোডে সেগুলি থেকে সুবিধা পেতে শুরু করার জন্য আপনাকে অবশ্যই পুরো traditionalতিহ্যবাহী সি ++ অবকাঠামোগত সমস্ত ফাংশন মোড়ানো পুনর্নির্মাণে প্রচুর পরিমাণে বিনিয়োগ করতে হবে। তবে অভাব finallyএই পদ্ধতিকেও অসম্ভব করে তোলে।
Val,

@wvxvw: গুগলের কনভেনশনগুলি মডিউল (.so) সীমানা জুড়ে ব্যতিক্রম ছোঁড়া নিষিদ্ধ করেছে। এটি কারণ সি ++ ব্যতিক্রমগুলি রান-টাইম টাইপ তথ্য (আরটিটিআই) ব্যবহার করে এবং লিনাক্স রান-টাইম টাইপিং প্রয়োগের পক্ষে ভাল কাজ করেনি। লিনাক্সে আপনি কেবলমাত্র মডিউলগুলির মধ্যে নির্ভরযোগ্যভাবে রান-টাইম প্রেরণ করতে পারবেন যদি আপনি একই সংকলকটির একই সংস্করণ সহ মডিউলগুলি কম্পাইল করেন এবং libstdc ++ এর অভিন্ন সংস্করণের সাথে সংযুক্ত হন। সত্যিই এটি লিনাক্স সম্প্রদায়ের দ্বারা সাধারণভাবে সি ++ এর প্রত্যাখ্যান, বিশেষত ব্যতিক্রমগুলির প্রত্যাখ্যান নয়।
পরিব্রাজক লজিক

3

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


1
আমি মনে করি এটি সম্পূর্ণ অপ্রাসঙ্গিক। প্রশ্নটি ব্যতিক্রমগুলির ধারণাকে মডেলিংয়ের বিষয়ে নয়, তবে এটির ত্রুটিগুলিতে ম্যাপিং সম্পর্কে - আমি মনে করি পিএলটি দৃষ্টিকোণ থেকে এটি বর্ণনা করার সঠিক উপায়টি ব্যতিক্রম স্তরক্রমের একটি তত্ত্ব হবে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

হুম, আপনি ঠিক বলেছেন। আমি এটিকে নির্দেশ করার জন্য উত্তরটি স্থির করেছি, তবে আমি মনে করি এটি মুছার দরকার নেই। আপনি কি মনে করেন?
আন্দ্রেজ বাউয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.