বিশ্বব্যাপী একটি ডাব্লুপিএফ অ্যাপ্লিকেশন ব্যতিক্রম ধরা?


242

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

এটি কি সি # তে সম্ভব? এবং যদি তাই হয় তবে আমার ব্যতিক্রম হ্যান্ডলিং কোডটি ঠিক কোথায় লাগানো উচিত?

বর্তমানে আমি কোনও একক পয়েন্ট দেখতে পাচ্ছি না যেখানে আমি একটি try/ catchচারপাশে গুটিয়ে রাখতে পারি এবং যা ঘটতে পারে তার সব ব্যতিক্রমকে ধরতে পারে। এবং তারপরেও আমি ধরা পড়ার কারণে যা কিছু কার্যকর করা হয়েছে তা রেখে দিয়েছি। বা আমি কি এখানে মারাত্মক ভুল দিক নিয়ে ভাবছি?

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

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

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

অ্যাপ্লিকেশনটির তাত্ক্ষণিক ব্যবহারের জন্য ব্যতিক্রম ঘটতে পারে এমন অনেক কিছুই নেই:

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

প্রোগ্রাম দ্বারা উত্পাদিত পরীক্ষার ডেটা হিসাবে: একটি গুরুতর ত্রুটি খারাপভাবে ঠিক কোন তথ্য রেকর্ড করা হতে পারে। সূক্ষ্ম পরিবর্তনগুলি যা পরীক্ষার ফলাফলকে এতটা সামান্য পরিবর্তন করে দেয় তা অসম্ভব সম্ভাবনা। এমনকি সেই ক্ষেত্রেও যদি ফলাফলগুলি সন্দেহজনক মনে হয় ত্রুটিটি লগ হয়েছিল; এটি এখনও মোট তথ্য সরবরাহকারী হলে ডেটা পয়েন্টটি ফেলে দিতে পারে।

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

পার্শ্ব নোট: এই অ্যাপ্লিকেশনটির জন্য ঠিক একজন ব্যবহারকারী রয়েছেন। এটি উইন্ডোজ বা অফিসের মতো কিছু নয় যা কয়েক মিলিয়ন দ্বারা ব্যবহার করা হয় যেখানে ব্যবহারকারীর কাছে ব্যতিক্রমী বুদবুদ থাকার ব্যয়টি ইতিমধ্যে প্রথম স্থানে খুব আলাদা হবে।


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

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

অন্য পক্ষের নোট: আপনি যদি এই পদ্ধতির সাথে কোনও ক্র্যাশ প্রতিরোধ করেন তবে ব্যবহারকারীরা সম্ভবত এটি পছন্দ করবে।
লাহাজাটন_ জে

ভিজ্যুয়াল স্টুডিও ২০১০ এর জন্য সি # তে ডাব্লুপিএফ (উইন্ডোজগুলির সর্বাধিক সম্পূর্ণ সংগ্রহ) -এ উইন্ডোজ হ্যান্ডলিং আনহ্যান্ডল্ড ব্যতিক্রমগুলি দেখুন । এটিতে অ্যাপডোমাইন.কন্টেনডোমাইন.ফার্সচেন্সি এক্সসেপশন, অ্যাপ্লিকেশন.ডিস্প্যাচার আনহেলডএক্সেপশন এবং অ্যাপডোমাইন.কন্টেনডোমাইন.অনহ্যান্ডলেড এক্সসেপশন সহ 5 টি উদাহরণ রয়েছে।
ব্যবহারকারী 34660

আমি যুক্ত করতে চাই যে ভিবি-জাতীয় কোড-প্রবাহ On Error Resume Nextসি # তে সম্ভব নয়। একটি Exception(সি # এর "ত্রুটি" নেই) এর পরে আপনি কেবলমাত্র পরবর্তী বিবৃতি দিয়ে পুনরায় শুরু করতে পারবেন না: মৃত্যুদন্ড কার্যকর হবে একটি catchব্লক - বা ইভেন্ট হ্যান্ডলারের একটিতে নীচের উত্তরে বর্ণিত।
মাইক

উত্তর:


191

ব্যবহার করুন Application.DispatcherUnhandledException Event। সংক্ষিপ্তসার জন্য এই প্রশ্নটি দেখুন ( ড্রু নোকসের উত্তর দেখুন )।

আপনি যখন ডাটাবেসে সংরক্ষণ করার চেষ্টা করছেন তখন স্ট্যাক ওভারফ্লো, ক্লান্ত মেমরির পরে বা নেটওয়ার্ক কানেক্টিভিটি হারিয়ে যাওয়ার মতো আপনার অ্যাপ্লিকেশনটির সফল পুনরায় সূচনা করতে ব্যর্থ হওয়াগুলি এখনও অবগত থাকবে aware


ধন্যবাদ। এবং হ্যাঁ, আমি সচেতন যে ব্যতিক্রমগুলি থেকে আমি পুনরুদ্ধার করতে পারি না, তবে যেগুলি ঘটতে পারে তাদের সিংহভাগই এই ক্ষেত্রে সৌম্য।
জোয়ি

14
যদি আপনার ব্যতিক্রম পটভূমির থ্রেডে ঘটে থাকে (বলুন, থ্রেডপুল.কুইউউজারওয়ারকআইটেম ব্যবহার করে), এটি কার্যকর হবে না।
সিজিমন রোজগা

@ সিজ: ভাল পয়েন্ট, তবে সেগুলি ওয়ার্কিটেমের চারপাশে একটি সাধারণ চেষ্টা ব্লক দিয়ে পরিচালনা করা যেতে পারে, না?
ডেভিড স্মিট

1
@ পিটিওংমংকোকুল: হ্যান্ডলারটিকে আপনার প্রধান লুপ থেকে ইভেন্ট হিসাবে ডাকা হয়। ইভেন্ট হ্যান্ডলারগুলি যখন ফিরে আসে তখন আপনার অ্যাপ্লিকেশনটি স্বাভাবিকভাবেই চলতে থাকে।
ডেভিড স্মিট

4
দেখে মনে হচ্ছে আমাদের e.Handled = সত্য সেট করা দরকার, যেখানে প্রোগ্রামগুলি বন্ধ করে দেয় এমন ডিফল্ট হ্যান্ডলারটি এড়াতে e একটি DispatcherUnhandledExceptionEventArgs রয়েছে। msdn.microsoft.com/en-us/library/...
Piti Ongmongkolkul

55

এনএলজি ব্যবহার করে উদাহরণ কোড যা অ্যাপডোমেনের সমস্ত থ্রেড থেকে ইউআই প্রেরণকারী থ্রেড এবং অ্যাসিঙ্ক ফাংশন থেকে বাদ দেওয়া ব্যতিক্রমগুলি ধরে ফেলবে :

App.xaml.cs:

public partial class App : Application
{
    private static Logger _logger = LogManager.GetCurrentClassLogger();

    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        SetupExceptionHandling();
    }

    private void SetupExceptionHandling()
    {
        AppDomain.CurrentDomain.UnhandledException += (s, e) =>
            LogUnhandledException((Exception)e.ExceptionObject, "AppDomain.CurrentDomain.UnhandledException");

        DispatcherUnhandledException += (s, e) =>
        {
            LogUnhandledException(e.Exception, "Application.Current.DispatcherUnhandledException");
            e.Handled = true;
        };

        TaskScheduler.UnobservedTaskException += (s, e) =>
        {
            LogUnhandledException(e.Exception, "TaskScheduler.UnobservedTaskException");
            e.SetObserved();
        };
    }

    private void LogUnhandledException(Exception exception, string source)
    {
        string message = $"Unhandled exception ({source})";
        try
        {
            System.Reflection.AssemblyName assemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName();
            message = string.Format("Unhandled exception in {0} v{1}", assemblyName.Name, assemblyName.Version);
        }
        catch (Exception ex)
        {
            _logger.Error(ex, "Exception in LogUnhandledException");
        }
        finally
        {
            _logger.Error(exception, message);
        }
    }

10
এটি এখানে সবচেয়ে সম্পূর্ণ উত্তর! টাকস শিডিয়ুলার ব্যতিক্রমগুলি অন্তর্ভুক্ত রয়েছে। আমার জন্য সেরা, পরিষ্কার এবং সহজ কোড।
নিকোলা জভিক

3
সম্প্রতি একটি গ্রাহকের কাছে আমার অ্যাপকনফাইগ দুর্নীতি হয়েছিল এবং তার অ্যাপটি শুরুও হয়নি কারণ এনএলগ অ্যাপ.config থেকে পড়ার চেষ্টা করেছিল এবং একটি ব্যতিক্রম ছুঁড়েছিল। যেহেতু এই ব্যতিক্রমটি স্ট্যাটিক লগার ইনিশিয়ালাইজারে ছিল তাই এটি UnhandledExceptionহ্যান্ডলারটির দ্বারা ধরা পড়েনি। কী ঘটছে তা
জানার

আমি সেটে reccomend e.Handled = true;UnhandledExceptionযে অ্যাপ্লিকেশন UI ব্যতিক্রমসমূহ উপর বিপর্যস্ত করা হবে না
Apfelkuacha

30

অ্যাপডোমাইন.অনহানডেলড এক্সসেপশন ইভেন্ট

এই ইভেন্টটি অপ্রকাশিত ব্যতিক্রমগুলির বিজ্ঞপ্তি সরবরাহ করে। সিস্টেম ডিফল্ট হ্যান্ডলার ব্যবহারকারীর ব্যতিক্রমটির প্রতিবেদন করে এবং অ্যাপ্লিকেশনটি সমাপ্ত করার আগে এটি অ্যাপ্লিকেশনটিকে ব্যতিক্রম সম্পর্কিত তথ্য লগ করতে দেয়।

   public App()
   {
      AppDomain currentDomain = AppDomain.CurrentDomain;
      currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);    
   }

   static void MyHandler(object sender, UnhandledExceptionEventArgs args) 
   {
      Exception e = (Exception) args.ExceptionObject;
      Console.WriteLine("MyHandler caught : " + e.Message);
      Console.WriteLine("Runtime terminating: {0}", args.IsTerminating);
   }

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

উদাহরণস্বরূপ, ধরুন একটি থ্রেড অ্যাপ্লিকেশন ডোমেন "AD1" এ শুরু হয়, অ্যাপ্লিকেশন ডোমেনে "AD2" তে একটি পদ্ধতি কল করে এবং সেখান থেকে অ্যাপ্লিকেশন ডোমেনে "AD3" তে একটি পদ্ধতি কল করে, যেখানে এটি ব্যতিক্রম ছুঁড়ে ফেলে। প্রথম অ্যাপ্লিকেশন ডোমেন যেখানে আনহানডেলড এক্সসেপশন ইভেন্টটি উত্থাপিত হতে পারে তা হ'ল "AD1"। যদি সেই অ্যাপ্লিকেশন ডোমেন ডিফল্ট অ্যাপ্লিকেশন ডোমেন না হয়, ইভেন্টটি ডিফল্ট অ্যাপ্লিকেশন ডোমেনেও উত্থাপিত হতে পারে।


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

1
@ জর্জিবারবিলিস: আপনি অ্যাপ কনস্ট্রাক্টরে আনহানডেলড এক্সসেপশন ইভেন্টের জন্য সদস্যতা নিতে পারেন।
CharithJ

18

অন্যরা এখানে যা উল্লেখ করেছে তা ছাড়াও নোট করুন যে Application.DispatcherUnhandledException(এবং এর সাদৃশ্যগুলি ) এর সাথে সম্মিলিত

<configuration>
  <runtime>  
    <legacyUnhandledExceptionPolicy enabled="1" />
  </runtime>
</configuration>

মধ্যে app.configআবেদন শাট ডাউন থেকে আপনার মাধ্যমিক থ্রেড ব্যতিক্রম প্রতিরোধ করবে।


2

এখানে ব্যবহারের সম্পূর্ণ উদাহরণ NLog

using NLog;
using System;
using System.Windows;

namespace MyApp
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();

        public App()
        {
            var currentDomain = AppDomain.CurrentDomain;
            currentDomain.UnhandledException += CurrentDomain_UnhandledException;
        }

        private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var ex = (Exception)e.ExceptionObject;
            logger.Error("UnhandledException caught : " + ex.Message);
            logger.Error("UnhandledException StackTrace : " + ex.StackTrace);
            logger.Fatal("Runtime terminating: {0}", e.IsTerminating);
        }        
    }


}

-4

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


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

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

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

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

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