সহায়ক ত্রুটি বার্তাগুলি বিকাশকারীদের সমস্যাগুলি কী? [বন্ধ]


29

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

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

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

অন্য প্রার্থী, এছাড়াও এসকিউএল সার্ভার (এবং মাইএসকিউএল) হ'ল সুদৃশ্য string or binary data would be truncatedত্রুটি বার্তা এবং সমতুল্য। অনেক সময়, এসকিউএল স্টেটমেন্টটি তৈরি হয়েছিল যা একটি সাধারণ উপলব্ধি ছিল এবং টেবিলটি দেখায় যে কোন কলামটি অপরাধী। এটি সর্বদা ক্ষেত্রে হয় না, এবং যদি ডাটাবেস ইঞ্জিনটি ত্রুটিটিকে বাছাই করে তবে এটি কেন আমাদের সেই সময়টি বাঁচাতে পারে না এবং কেবল আমাদের জানায় যে এটি কোন জঘন্য কলামটি ছিল? এই উদাহরণে, আপনি তর্ক করতে পারেন যে এটি পরীক্ষা করতে কোনও পারফরম্যান্স হিট হতে পারে এবং এটি লেখককে বাধা দেয়। ভাল, আমি এটি কিনব। কীভাবে, একবার ডাটাবেস ইঞ্জিন জানলে কোনও ত্রুটি ঘটেছে, এটি কলামের দৈর্ঘ্যের বিপরীতে সংরক্ষণ করা মূল্যবোধগুলির মধ্যে সত্যতার পরে একটি দ্রুত তুলনা করে। তারপরে এটি ব্যবহারকারীকে প্রদর্শন করুন।

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

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

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

বিকাশকারীরা কেন মনে করেন যে ঠিক আছে, এই দিন এবং যুগে, ত্রুটি দেখা দিলে খালি ন্যূনতম পরিমাণ তথ্য সরবরাহ করা?

এটা তোলে 2011 বলছি, আসা উপর


11
বাহ, এটি বেশ ছদ্মবেশী।
জর্জ মেরিয়ান

3
@ জর্জি, আপনি কি বলতে পারবেন যে কোনও সঠিক ত্রুটির কারণে দ্রুত সমাধান করা যেত এমন কিছু ট্র্যাকিংয়ের জন্য আমি দীর্ঘ সময় ব্যয় করেছি? :)
মু-রস

4
আমি গভীর শ্বাসের পরামর্শ দিচ্ছি, সম্ভবত কিছু যোগব্যায়াম ও ধ্যান। :) (এটি বলেছিল, আপনি ঠিক কেমন অনুভব করেছেন তা আমি জানি))
জর্জ মেরিয়ান

2
+1 - "স্ট্রিং বা বাইনারি ডেটা কেটে যাবে" আমাকে সর্বদা পাগল করে তোলে!
k25

উত্তর:


22

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

অত্যধিক তথ্য প্রকাশের বিষয়ে উদ্বেগও রয়েছে, যা বিকাশকারীদের সাবধানতার দিক থেকে ত্রুটির দিকে নিয়ে যেতে পারে। (আমি আপনাকে প্রতিশ্রুতি দিচ্ছি যে পাং এর উদ্দেশ্য ছিল না, তবে আমি এখন এটি সরিয়ে দিচ্ছি না যে আমি এটি লক্ষ্য করেছি))

কখনও কখনও, একটি জটিল ত্রুটি বার্তা শেষ ব্যবহারকারীর পক্ষে অকেজো যে সত্য আছে। তাত্ক্ষণিক বার্তাগুলির জন্য তথ্যের ওভারলোড সহ সাইডিং করা ভাল প্রয়োজন নয়। (এটি লগিংয়ের জন্য সেরা সংরক্ষণ করা যেতে পারে))


+1 আমি তথ্যের ওভারলোড দিকটি সম্পর্কে ভাবিনি।
রায়ান হেইস

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

1
@ জর্জ, তথ্যের ওভারলোড এবং এটি শেষ ব্যবহারকারীর পক্ষে উপযোগিতা সম্পর্কিত, আবার আমি একটি শব্দের প্রসেসরের ব্যবহারকারীর কাছে একটি পূর্ণ-স্ট্যাক-ট্রেস না দেওয়ার জন্য একটি মামলা দেখতে পাচ্ছি, পাছে তাদের ব্রাউন ট্রাউজারের মুহুর্ত না ঘটে have এবং তারা ইন্টারনেট মুছে ফেলেছে বলে মনে করেন। তবে আপনি লগ ফাইলে জটিল তথ্য সহ একটি দুর্দান্ত বিকল্প সরবরাহ করেছেন। এখন যে বার্তাটি করা দরকার তা হ'ল অ্যাড For further information, see log20111701.txt। এটি সঠিক দিকের একটি পদক্ষেপ হবে।
মু-রস

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

1
@ মূ সমস্যাটি হ'ল এটি কতটা তথ্য দরকারী তা সর্বদা স্পষ্ট নয়। আপনার দেওয়া উদাহরণগুলি বরং সুস্পষ্ট বলে মনে হচ্ছে। তবে সাধারণ ক্ষেত্রে এটি প্রসারিত করা সহজ নয়।
জর্জ মেরিয়ান

21

বিকাশকারীরা ত্রুটি বার্তা লেখার জন্য সঠিক ব্যক্তি নয়।

তারা অ্যাপ্লিকেশনটি ভুল কোণ থেকে দেখে। কোডের ভিতরে কী ভুল হয়েছে সে সম্পর্কে তারা অত্যন্ত সচেতন, তবে প্রায়শই কোনও কিছু সম্পাদন করার চেষ্টা করার দৃষ্টিকোণ থেকে সফ্টওয়্যারটির কাছে পৌঁছায় না। ফলস্বরূপ, বিকাশকারীটির জন্য গুরুত্বপূর্ণ তথ্যটি ব্যবহারকারীর জন্য প্রয়োজনীয় তথ্য নয়।


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

8

দাতব্য দর্শন:

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

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

  • বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য এই ধরণের জিনিসটি করার জন্য সময়ের জন্য ভাল কেসটি করা পাশাপাশি পরবর্তী বিকাশকারীকে সত্যিই পছন্দ করা উচিত কারণ ত্রুটিগুলি প্রায়শই ঘটে না। তদ্ব্যতীত, যদি আপনার অতিরিক্ত সময় থাকে তবে আপনার ত্রুটিগুলি বন্ধ করার পরিবর্তে এটি থামিয়ে ব্যয় করা উচিত নয়?

অপ্রকাশ্য দৃশ্য:

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

বাস্তবতা সম্ভবত মাঝখানে কোথাও, যদিও আমার অভিজ্ঞতা আসলে আমাকে বলেছে এটি আগের চেয়ে অনেক বেশি আগের - মূলত এটি বেশ শক্ত এবং এমন কিছু ঘটতে পারে যা সম্ভবত ঘটে না তার মোকাবেলায় যথেষ্ট পরিমাণ প্রচেষ্টা গ্রহণ করে।


আমি বুঝতে পারি আপনি অনেকগুলি ব্যবহারকারীর ক্ষেত্রে কোথা থেকে এসেছেন। যাইহোক, আমি আমার মূল পোস্টে উল্লিখিত মামলাগুলি ডাটাবেসের বিরুদ্ধে কোড লেখার সময় ঘন ঘন ঘটতে পারে। ওয়ার্ড-প্রসেসর বা কম্পিউটার গেমের মতো শেষ-ব্যবহারকারী অ্যাপ্লিকেশন সম্পর্কিত, ত্রুটিগুলি সাধারণত ঘটতে হবে না যতক্ষণ না খারাপ কিছু না ঘটে এবং তবুও ত্রুটিটি শেষ ব্যবহারকারীর কাছে কিছুই বোঝায় না ( Process Handle Raped By Spawned Injector, Quitting SYstem..... ব্যবহারকারী: "আমি কি ডাব্লুটিএফএফ করেছি?`)। তবে এসকিউএল সার্ভার / এএসপি.নেটের ক্ষেত্রে, আমার মনে হয় আরও প্রচেষ্টা করা যেতে পারে :)
মু-জুস

@ মু-রস - আমি মনে করি এটি পুরো "ত্রুটি বার্তাগুলি শক্ত" বিষয়টিতে আসে। অপ্টিমাইজারের কাজটি একবার হ'ল ডুবেজে ডাটাবেসে আসলে কী ঘটে যায় তা কেবল এটিই যে আপনি ছুঁড়েছিলেন তার সাথে এটি কেবল একটি পাসিং সাদৃশ্য রয়েছে। ত্রুটি চিহ্নিত করা একটি জিনিস, আপনি যা পেরেছেন তার কী ঘটেছিল তা অনুসরণ করে তা সম্পূর্ণরূপে এবং একেবারে তুচ্ছ নয়।
জন হপকিন্স

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

6

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


আহ, হ্যাঁ, ভাল পয়েন্ট। যে ব্যয় সম্পর্কে সদা উদ্বেগ।
জর্জ মেরিয়ান

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

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

কিছু স্তরে, এটি বৈধ হতে পারে, তবে একই সমস্যা এমনকি সহজ পার্ল স্ক্রিপ্টগুলিতে ফসল কাটা যেখানে কেবল simply যোগ করা হয়! ত্রুটি বার্তাটি অত্যন্ত সহায়ক হবে। এটা সস্তা লিখতে (বিকাশকারীর সময় পরিপ্রেক্ষিতে) হল: তুলনায় এটি একদম বেহুদা লিখতে হল 'ডাই "পারে খোলা $ পথ না"' 'ডাই "$ পথ $!"'
উইলিয়াম Pursell

6

আমি সম্মত হই যে ত্রুটি বার্তাগুলি যথাসম্ভব নির্দিষ্ট হওয়া উচিত।

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


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

বিটিডব্লিউ ... এই প্রক্রিয়াটি মজাদার ত্রুটি বার্তাগুলির পুরো শ্রেণির দিকে নিয়ে যায় - "মডিউল বামন 6767-এর গুরুতর ত্রুটি -567: কোনও ত্রুটি সনাক্ত করা যায় নি"
ইচ্ছুও

4
  • কখনও কখনও অতিরিক্ত তথ্য সুরক্ষা ঝুঁকি হতে পারে; আপনি জানেন না কে ত্রুটি বার্তাটি পড়ছে
  • কখনও কখনও অপারেশনটি যে ব্যতিক্রমটি ছুঁড়েছে তা এত জটিল যে নেতিবাচক ছাড়া অর্থবহ বার্তা পাওয়া অসম্ভব বলে কোডের গতি / জটিলতায় প্রভাব ফেলে

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

এটা ঠিক যে, আমি যে আপনি তথ্য অনুসন্ধান করতে পারেন একবার কিছু এর কি আপনি এর সম্পর্কে অবগত থাকুন বদলে ঘটেছে অনুমান পারে প্রয়োজন। যদিও, আপনি যদি নেস্টেড লুপগুলিতে থাকেন তবে সূচি / সূচকগুলি ক্যাপচার করা সমস্যাযুক্ত হতে পারে।
স্টুপারউজার

-1 প্রথম পয়েন্টের সাথে আমি একমত নই, দ্বিতীয় পয়েন্টের জন্য +1।
জন হপকিন্স

1
@ জোন লগইন ত্রুটিগুলির তুলনায় জেনেরিক ত্রুটি বার্তার বিপরীতে আরও সুনির্দিষ্ট ত্রুটি বার্তাগুলির বিপরীতে যা আসলে আপনাকে কী ভুল হয়েছে তা বলে দেয়। উদাহরণস্বরূপ "আমরা সেই ব্যবহারকারী নাম / পাসওয়ার্ডের সংমিশ্রণটি খুঁজে পাইনি" বনাম "আপনি একটি ভুল পাসওয়ার্ড লিখেছেন entered" / "এই ব্যবহারকারীর নামটি বিদ্যমান নেই।" আমি এএসপি.এনইটি-র একটি দুর্বলতার কথা মনে করি যেখানে ত্রুটি বার্তাটি এনক্রিপশন কীগুলিতে ক্র্যাকিংয়ে আসলে কার্যকর ছিল।
জর্জ মেরিয়ান

@ জর্জি - আমি এই উদাহরণের সাথে একমত তবে আমার মনে হয় না যে এটি বিস্তৃত। একবার আপনি কোনও অ্যাপ্লিকেশনে অ্যাক্সেস পাওয়ার পরে কোনও নির্দিষ্ট মাত্রার ঝুঁকি অদৃশ্য হয়ে যাওয়ার সাথে সাথে আপনি ধরে নিতে পারবেন যে ব্যক্তিটি (ক) অনুমোদিত এবং (খ) প্রকৃত অ্যাপ্লিকেশন থেকে প্রয়োজনীয়টি সর্বাধিক পেতে পারে।
জন হপকিন্স

3

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

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

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

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

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

নিয়ন্ত্রণ ক্ষতির সম্ভাবনা একেবারেই সত্য যে আমরা পরিকল্পনাগুলি এবং সুশৃঙ্খলভাবে জিনিসগুলি করছি from


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

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

2

আমি একটি সফ্টওয়্যার ফার্মের সাপোর্ট ইঞ্জিনিয়ার হিসাবে কাজ করি এবং প্রায়শই আমরা ত্রুটি বার্তা দেখতে পাই যা আমাদের কাছে নতুন new প্রায়শই যখন আমি এগুলি আমাদের উন্নয়ন টিমের কাছে উল্লেখ করি তখন তাদের অ্যাপ্লিকেশনটির উত্সের বার্তাটি অনুসন্ধান করতে হয়।

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


1
দুঃখিত, এটি বেশ অবৈধ। কে সঠিক সূচি রাখার জন্য সেই সূচক ডকটি পরিচালনা করার জন্য দায়বদ্ধ হবে। কোডের বিচ্ছিন্ন কোনও লিখিত ডকুমেন্টেশন হিসাবে, এটি পুরানো হবে এবং এটি লেখা হওয়ার সাথে সাথেই নতুন ত্রুটির জন্য উত্স পাওয়া শুরু করবে।
ইচ্ছুও

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

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

আমি @ জিনের সাথে রয়েছি - কোডটিতে অন্তর্ভুক্ত করার জন্য বা ত্রুটি কোড এবং তাদের ব্যাখ্যা সহ কোডটিতে একটি কেন্দ্রীয় সূচি থাকতে পারে simple একবার যখন একটি ব্যতিক্রম সনাক্ত করা হয়েছে তা জানার জন্য আপনার কোডটি অনুসরণের প্রয়োজন অনুসারে কোডের কিছু না করে কোথাও পরিবেশের সাথে সমস্যা রয়েছে বলে যথেষ্ট হতে পারে।
glenatron

2

আপনি যে সমস্যাটি দেখতে পাচ্ছেন তা হ'ল যথাযথ এনক্যাপসুলেশন এবং তথ্য গোপনের একটি পার্শ্ব প্রতিক্রিয়া।

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

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

catch (IOException error)
{
//File is in use
throw new GenericExceptionParsedByTheUIThread("File is in use.");
}

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

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


@ জিডব্লিউল্লোসা, এটি একটি দুর্দান্ত উত্তর এবং আমি এটি বিবেচনা করি নি। এটি বলেছিল (এবং আমি এখানে একটি সম্পূর্ণ কোড উদাহরণ সরবরাহ করতে পারি না), যখন আমি আইওএক্সেপশন পাই, আমার নিক্ষেপ করার আগে GenericException, আমি 1) Processesপ্রক্রিয়াগুলির তালিকার জন্য সাবসিস্টেমকে জিজ্ঞাসা করতে পারি । 2) প্রতিটি প্রক্রিয়া জিজ্ঞাসা করুন তারা কি ডাটাবেস ব্যবহার করছে। 3) আমি ওভাররাইট করার চেষ্টা করছি এমন একটিকে নির্ধারিত ডাটাবেসের সাথে প্রক্রিয়াটি মেলে, 4) একটি DatabaseInUse(dbName, processName, applicationNameব্যতিক্রম ছুঁড়ে ফেলুন। :)
মু-রস

1
অবশ্যই সম্ভব; তবে ডিবিটির সাথে প্রক্রিয়াটির (বিশেষত নেটওয়ার্কের) সাথে মেলে কোডটি জটিল / ধীর / ত্রুটিযুক্ত হতে পারে, যার ফলে কিছুটা হতাশার কারণ হতে পারে ("আমি কেবল স্থানীয় (* #% restore পুনরুদ্ধার করার চেষ্টা করছি!) % ফাইল !!!! আমি কেন যত্ন নেব যে
নেটওয়াক শেয়ারগুলি অ্যাক্সেসযোগ্য

1
@ মু-রস: আপনি যা প্রস্তাব দেন তা বেশ নির্বোধ শোনায়। একটি ডাটাবেসের মতো বিশাল বহুবিবাহিত পরিবেশে আপনি "সমস্ত xyz" তালিকা পেতে কিছু বৈশ্বিক পরিষেবাতে পৌঁছাতে পারবেন না। এমনকি অন্য থ্রেডে অন্য কোনও পরিষেবাতে কথা বলার জন্য, আপনার একটি লক দরকার যা পুরো সিস্টেমটির আরও খারাপ অবস্থার দিকে নিয়ে যেতে পারে, এটি অন্য ডেটাগুলিকে দূষিত করতে পারে বা কমপক্ষে এটি অতিরিক্ত ত্রুটি সৃষ্টি করতে পারে, যা আপনার তখন পরিচালনা করতে হবে need ....
ইচ্ছুও

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

@ ইচ্চিও, কোনও অপরাধ নেই তবে আমার মনে হয় না এটি মোটেই নিষ্পাপ। আমি ডেটাবেস ইঞ্জিনটিকে সিস্টেমটি লক করতে বলছি না যে কোন প্রক্রিয়ায় এখনও একটি ডাটাবেসের হ্যান্ডেল রয়েছে তা আমাকে বলার জন্য। আমি এটিকে পুরো উদ্যোগটি থামিয়ে দিতে বলছি না। এটির যদি আমাকে একটি সহজ উত্তর দেওয়ার দরকার হয় তবে এটি প্রথম স্থানটিতে ডাটাবেস সার্ভারের একটি মৌলিক নকশার ত্রুটি দেখায়। মনে রাখবেন, এটি দ্রুততম উপায়ে প্রাসঙ্গিক তথ্য ফেরত দেওয়ার জন্য ডিজাইন করার কথা রয়েছে। এটি জিজ্ঞাসা করতে "কে?" আপনার বক্তব্য হিসাবে সত্যই নিখুঁত হওয়া উচিত নয় :)
মূ-রস

2

আমার প্রিয় ছিল ((০-এর দশকের শেষের দিকে) ইউনিট-ফোর্টারান চতুর্থ সংকলক, অ-অঙ্কগুলি পড়ার সময়, বিশ্বস্ততার সাথে ঘোষণা করা হয়েছিল

অর্থহীন ডেটার ব্যাখ্যার চেষ্টা করা হয়েছিল


+1, একেবারে দুর্দান্ত! এটি এমন এক ধরণের ত্রুটি যা আপনাকে কেবল ফিজিতে ছেড়ে দিতে এবং মুরগি বাড়াতে চায়।
মু-রস

প্রকৃতপক্ষে, এই ত্রুটি বার্তাটি 100% নির্ভুল - আপনি যদি আরও কনটেক্সট সহ আরও বন্ধুত্বপূর্ণ বার্তা চান তবে আপনার কিছু অনুমান এবং হিউরিস্টিকস তৈরি করতে হবে; এইভাবে আপনি বিভ্রান্তিমূলক ত্রুটি বার্তাগুলির সম্ভাবনা যুক্ত করেছেন ..
ইচ্ছুও

0

আমি বিশ্বাস করি ত্রুটি বার্তাগুলির বেশিরভাগই আসলে প্রোগ্রামার (স্ব) ওরিয়েন্টেড গ্লোরিফাইড ডিবাগিং কোড / প্রিন্টফ স্টেটমেন্ট।

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

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

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


0

আমি মনে করি এর কারণ হ'ল ত্রুটি প্রতিবেদন / পরিচালনা করা সর্বদা চিন্তার পরে হিসাবে করা হয় । এমনকি যখন তারা পুরোপুরি চিন্তার পরেও না থাকে, তারা সামগ্রিক নকশায় বেশিরভাগই দ্বিতীয় শ্রেণির নাগরিক।

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

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

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

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