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