আপনি কীভাবে ত্রুটি কোডগুলি অর্পণ করবেন?


13

কিভাবে, মাঝারি আকারের প্রকল্পটি বিকাশ করার সময়, আপনি ত্রুটি কোডগুলি সনাক্ত, তৈরি এবং বজায় রাখবেন?

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

আরও নির্দিষ্ট করে বলতে আমি ত্রুটি কোডের কথা বলছি যেমন:

Error 401 Unauthorized.


1
ত্রুটি কোডগুলি? "ম্যাজিক নাম্বার" পছন্দ? উদাহরণস্বরূপ ... ERROR 001. তারপরে আপনি একটি তালিকায় যান এবং ERROR 001 পড়েন মানে ব্লে ব্লে ব্লে ... হ্যাঁ?
ওয়ালাও

@ ওয়ালাও - ইয়াসির আমি আমার প্রশ্নটি সম্পাদনা করব enc ধন্যবাদ.
আহোদার


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

@ ওয়ালাও - এখনও নয়, তবে আপনাকে এবং পিটার টারিককে ধন্যবাদ, আমি অবশ্যই একটি তৈরি করব। :)
আহোদার

উত্তর:


16

না।

ত্রুটি কোডগুলি একটি অ্যানক্রোনজম, এগুলি আপনার প্রাচীনকাল থেকেই ঘটেছিল যখন আউটপুটটি সত্যই শক্ত এবং ব্যয়বহুল ছিল এবং ত্রুটির অবস্থার সংকেত দেওয়ার একমাত্র উপায় সামনের প্যানেল লাইটগুলির একগুচ্ছ হতে পারে: pdp11 / 70 সামনের প্যানেল

আজকাল, আমাদের পরিপক্ক ব্যতিক্রম হ্যান্ডলিং প্রতিটি মূলধারার ভাষাতে নির্মিত হয়েছে। এটা ব্যবহার করো. ব্যবহারকারীদের সাথে তারা কাজ করতে পারে এমন তথ্য দিন; তাদের প্রযুক্তিগত ব্লাহ-ব্লাহ দিয়ে বিরক্ত করবেন না, বরং তাদের ভুল কী হয়েছে এবং তারা এ সম্পর্কে কী করতে পারে তা মোটামুটি জানান। লগিংয়ের জন্য, কেবলমাত্র আপনার ব্যতিক্রমগুলি বর্ণনামূলক নাম দিন এবং নামটি লগ করুন। মনে রাখা সহজ এবং গ্রেপ বা অনুরূপ অনুসন্ধান সরঞ্জামগুলি ব্যবহার করে খুঁজে পাওয়া সহজ।

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


বিস্তারিত উত্তরের জন্য আপনাকে ধন্যবাদ, এটি প্রচুর পরিমাণে উপলব্ধি করে এবং এটি জানতে ভাল।
আহোদার

আপনার দৃষ্টান্তের ব্যবহার আপনার যুক্তির সাথে পুরোপুরি মেলে। আমি পিডিপি -11 এর সম্পর্কে চিরকাল পড়েছি। তবে এটি আমি প্রথম দেখি। ধন্যবাদ।
মাইক 21

2
কোডের অভ্যন্তরে, আমি বরং একটি ত্রুটি কোড হ্যান্ডেল করব এবং আমি এটি পুরানো নই।
জেফো

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

@ মাইক: চিত্রটি পিডিপি -11 সিরিজের উইকিপিডিয়া নিবন্ধের; যদি এটি সন্ধান করা সহজ না হয় তবে আমি কী তা জানি না।
tmadmers

6

HTTP এর মতো সাধারণ প্রোটোকলগুলিতে কীভাবে ত্রুটি / স্থিতি কোডগুলি সংগঠিত হয় তা আপনার পরীক্ষা করা উচিত । তারা বিভিন্ন ধরণের স্ট্যাটাস / ত্রুটির জন্য স্বতন্ত্র রেঞ্জ সংরক্ষণ করে serve এটি ব্যবহারকারীর পক্ষে অজানা স্থিতি কোড সনাক্ত করা এবং বিকাশকারীদের জন্য নতুন ধরণের ত্রুটির জন্য একটি কোড নির্ধারণ করা সহজ করে তোলে যা আগে পরিচালিত হয়নি।


আপনার উত্তরে ট্যাক্সোনমি জিনিস যুক্ত করুন। এটি ত্রুটিগুলি পরিচালনা এবং পরিচালনা করা জিনিসগুলিকে আরও সহজ করে তুলবে।
ওয়ালাও

3

দুঃখিত, কিছুতেই ত্রুটি কোডগুলি কেন ব্যবহার করছেন?
ব্যতিক্রমটি ধরুন, লগ ইন করুন এবং প্রোগ্রামটি পুনরুদ্ধার করতে না পারলে একটি প্রতিবেদন প্রেরণের প্রস্তাব দিন ।

(ধরে নিলাম আপনার ভাষা ব্যতিক্রমকে সমর্থন করে))

কেবলমাত্র প্রাসঙ্গিক তথ্য যা আপনাকে বাগ ঠিক করতে সহায়তা করতে পারে তা হ'ল স্ট্যাক ট্রেস যা আপনি একটি ত্রুটি কোড সহ পান না। (আমি এটিও ধরে নিচ্ছি যে আপনি ত্রুটি প্রতিবেদনের জন্য ত্রুটি কোডগুলি ব্যবহার করতে চান এবং সেগুলি কোনও ব্যবহারকারীর মুখে ফেলবেন না))


এটি খুব সত্য, এবং আমি এটি করি তবে আমি ব্যবহারকারীদের কী বলব? আমি নিশ্চিত যে তারা বেঁচে থাকাকালীন যদি তারা পাশাপাশি চলতে থাকে এবং অ্যাপ্লিকেশনটি কেবল মারা যায়, কোনও ব্যাখ্যা বা এলোমেলো কিছু নেই।
আহোদার

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

2
ত্রুটি কোডগুলি ব্যবহার করার একটি বড় কারণ হ'ল আপনি যখন ব্যাক এন্ড অ্যাপ্লিকেশন তৈরি করছেন। কোনও ক্লায়েন্ট প্রোগ্রামের জন্য কোনও ত্রুটি বার্তা বা স্ট্যাক ট্রেসের চেয়ে কোডটির ব্যাখ্যা এবং প্রতিক্রিয়া জানানো অনেক সহজ এবং মার্জিত। সমস্ত ত্রুটিগুলি বাগ থেকে নয়।
কায়প্রো দ্বিতীয়

1
ব্যতিক্রমগুলি সঠিকভাবে পাওয়া খুব শক্ত! লিংকগুলি এতে দেখুন: প্রোগ্রামারস.স্ট্যাকেক্সেঞ্জারওয়েজস
সেকশনস

@ কোডার: আপনার উদাহরণগুলি আপত্তিজনক ব্যতিক্রম। আপনি নিক্ষেপ করা হবে বলে আপনি আশা করা উচিত । বেশিরভাগ পদ্ধতিতে এমনকি একক ব্যতিক্রম নিক্ষেপ করা আশা করা প্রয়োজন হয় না। কী পরিচালনা করতে হবে এটি সিদ্ধান্ত নেওয়া সম্পূর্ণ প্রোগ্রামারের দায়িত্ব এবং আমি সম্মত হই যে এটি সঠিকভাবে পাওয়া শক্ত হতে পারে ।
ড্যান

2

আমি একটি পদ্ধতিগত প্রসঙ্গ (সি) ধরে যাচ্ছি। যদি আপনার অবজেক্ট থাকে তবে একটি ত্রুটিযুক্ত বস্তু সাধারণত ব্যতিক্রম হয় বা না সেগুলি ভাল।

প্রতিটি মডিউলে আপনার স্থানীয় ত্রুটি কোডগুলি ব্যবহার করা উচিত। একটি লাইব্রেরির জন্য আপনার ত্রুটি কোডগুলি তালিকাভুক্ত একটি বিশেষ শিরোনাম থাকতে পারে, নম্বর 1, 2 ইত্যাদি সহ (বা -1, -2 আপনি পছন্দ করেন)। এই কোডগুলির মধ্যে যে কোনও একটি সর্বদা ফিরে আসার বিষয়টি নিশ্চিত করুন, যেমন errnoআপনার নিজের কোডগুলিতে অনুবাদ করুন । আপনার যদি মডিউলগুলির একাধিক স্তর থাকে তবে প্রতিটি ধাপে অনুবাদ করুন (বা গভীর ত্রুটির জন্য একটি পরিসীমাটিকে পূর্বনির্ধারিত করুন, উদাহরণস্বরূপ 1001 - 1050 মানগুলি অন্যান্য মডিউলটি থেকে আসে)।

আপনি কোডটি স্ট্রিংয়ে অনুবাদ করার জন্য কোনও মাধ্যম সরবরাহ করাও গুরুত্বপূর্ণ। আপনার কখনই কেবল কোডটি রিপোর্ট করা উচিত নয়, যা কেবল হতাশার দিকে পরিচালিত করে। প্রকৃতপক্ষে আপনার অ্যাপ্লিকেশনটিতে কোনও কোড স্ট্রিং ট্রান্সলেশন ফাংশন নিয়ে আসা উচিত। উদাহরণস্বরূপ libc সাধারণত আছে strerrorএবং strsignal, কিন্তু দুঃখের সাথে অভাব আছে strwaitstatus


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