ক্র্যাশ এবং ব্যতিক্রম

এই নথিটি Android এর জন্য Google Analytics SDK v4 ব্যবহার করে ক্র্যাশ এবং ব্যতিক্রম পরিমাপের একটি উচ্চ-স্তরের ওভারভিউ প্রদান করে।

ওভারভিউ

ক্র্যাশ এবং ব্যতিক্রম পরিমাপ আপনাকে আপনার অ্যাপ্লিকেশানে ধরা পড়া এবং ধরা না পড়া ক্র্যাশ এবং ব্যতিক্রমগুলির সংখ্যা এবং ধরন পরিমাপ করতে দেয়৷ একটি ব্যতিক্রম এই ক্ষেত্র আছে:

ক্ষেত্র নাম টাইপ প্রয়োজন বর্ণনা
বর্ণনা String না ব্যতিক্রমের বিবরণ (100টি অক্ষর পর্যন্ত)। null গ্রহণ করে।
মারাত্মক boolean হ্যাঁ ব্যতিক্রম মারাত্মক ছিল কিনা তা নির্দেশ করে। true মারাত্মক নির্দেশ করে।

ক্র্যাশ এবং ব্যতিক্রম ডেটা প্রাথমিকভাবে ক্র্যাশ এবং ব্যতিক্রম রিপোর্টে পাওয়া যায়।

ধরা ব্যতিক্রম

ধরা ব্যতিক্রমগুলি, যেমন ডেটার জন্য অনুরোধের সময় একটি নেটওয়ার্ক সংযোগের মাঝে মাঝে টাইমআউট, আপনার অ্যাপের ত্রুটি যা আপনি পরিচালনা করার জন্য কোড প্রয়োগ করেছেন৷

ট্র্যাকারে ব্যতিক্রম ক্ষেত্রের মান সেট করে এবং হিট পাঠানোর মাধ্যমে একটি ধরা ব্যতিক্রম পরিমাপ করুন, যেমন এই উদাহরণে:

// Get tracker.
Tracker t =
    ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER);

// Build and send exception.
t.send(new HitBuilders.ExceptionBuilder()
    .setDescription(getExceptionMethod() + ":" + getExceptionLocation())
    .setFatal(getExceptionFatal())
    .build());

getTracker পদ্ধতির বিস্তারিত জানার জন্য উন্নত কনফিগারেশন দেখুন।

অপ্রকাশিত ব্যতিক্রম পরিমাপ

ধরা না পড়া ব্যতিক্রমগুলি এমন উদাহরণগুলিকে উপস্থাপন করে যেখানে আপনার অ্যাপটি রানটাইমে অপ্রত্যাশিত পরিস্থিতির সম্মুখীন হয়েছে এবং প্রায়শই মারাত্মক হয়, যার ফলে অ্যাপটি ক্র্যাশ হয়ে যায়। না ধরা ব্যতিক্রমগুলি ga_reportUncaughtExceptions কনফিগারেশন মান সেট করে বা ExceptionReporter ক্লাস ব্যবহার করে স্বয়ংক্রিয়ভাবে Google Analytics-এ পাঠানো যেতে পারে।

স্বয়ংক্রিয় কনফিগারেশন

Google Analytics-এ স্বয়ংক্রিয়ভাবে আপনার অ্যাপের সব ধরা না পড়া ব্যতিক্রমগুলি পাঠাতে, এই লাইনটি আপনার XML কনফিগারেশন ফাইলে যোগ করুন:

<bool name="ga_reportUncaughtExceptions">true</bool>

স্বয়ংক্রিয় ব্যতিক্রম পরিমাপ ব্যবহার করে একটি ব্যতিক্রম পাঠানোর পরে, ব্যতিক্রমটি Thread ডিফল্ট ব্যতিক্রম হ্যান্ডলারে প্রেরণ করা হবে।

একটি উন্নত বাস্তবায়ন ব্যবহার করে

আপনি যদি একটি উন্নত বাস্তবায়ন ব্যবহার করেন এবং ga_reportUncaughtExceptions কনফিগারেশন মান ব্যবহার না করেন তাহলে স্বয়ংক্রিয়ভাবে ধরা না পড়া ব্যতিক্রম পরিমাপ বাস্তবায়ন করতে ExceptionReporter ক্লাস ব্যবহার করুন।

ExceptionReporter হয় একটি নির্দিষ্ট থ্রেড বা আপনার অ্যাপের সমস্ত থ্রেডের জন্য ডিফল্ট অপ্রকাশিত ব্যতিক্রম হ্যান্ডলার হিসাবে কাজ করতে পারে। Google Analytics-এ একটি ব্যতিক্রম পাঠানোর পর, ExceptionReporter ক্লাস ঐচ্ছিকভাবে ব্যতিক্রমটি আপনার প্রদান করা কোনো ধরা না পড়া ব্যতিক্রম হ্যান্ডলারের কাছে পাঠাতে পারে।

নিম্নলিখিত কোডটি একটি নতুন ExceptionReporter অবজেক্ট তৈরি করে এবং এটিকে নতুন ডিফল্ট না ধরা ব্যতিক্রম হ্যান্ডলার হিসাবে সেট করে। ফলস্বরূপ, প্রতিটি ধরা না পড়া ব্যতিক্রম Google অ্যানালিটিক্সে পাঠানো হবে এবং তারপরে পূর্বের ধরা না পড়া ব্যতিক্রম হ্যান্ডলারের কাছে পাঠানো হবে। বেশিরভাগ অ্যাপ্লিকেশনের জন্য, ডিফল্ট হ্যান্ডলার লগের ব্যতিক্রমটি লগ করবে এবং অ্যাপ্লিকেশনটি বন্ধ করে দেবে।

Thread.UncaughtExceptionHandler myHandler = new ExceptionReporter(
    myTracker,
    Thread.getDefaultUncaughtExceptionHandler(),
    context);

// Make myHandler the new default uncaught exception handler.
Thread.setDefaultUncaughtExceptionHandler(myHandler);

স্বয়ংক্রিয় ব্যতিক্রম পরিমাপ ব্যবহার করার সময়, নিম্নলিখিতগুলি মনে রাখবেন:

  • স্বয়ংক্রিয় ব্যতিক্রম পরিমাপ ব্যবহার করে পাঠানো সমস্ত ব্যতিক্রম Google Analytics-এ মারাত্মক হিসাবে রিপোর্ট করা হয়েছে।
  • ডিফল্টরূপে, বর্ণনা ক্ষেত্র স্বয়ংক্রিয়ভাবে ব্যতিক্রম প্রকার, শ্রেণীর নাম, পদ্ধতির নাম এবং থ্রেড নাম ব্যবহার করে সেট করা হয়।

ব্যতিক্রম বর্ণনা পার্সিং

SDK একটি StandardExceptionParser প্রদান করে যাতে Google Analytics-এ ব্যতিক্রম বিবরণ পাওয়া এবং পাঠানোর প্রক্রিয়া সহজ হয়:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Using StandardExceptionParser to get an Exception description.
try {
    // Request some scores from the network.
    ArrayList<Integer> highScores = getHighScoresFromCloud();
} catch (IOException e) {
    t.send(new HitBuilders.ExceptionBuilder()
        .setDescription(new StandardExceptionParser(this, null)
            .getDescription(Thread.currentThread().getName(), e))
        .setFatal(false)
        .build()
    );

    ... // Display alert to user that high scores are currently unavailable.
}

আপনি ExceptionParser ইন্টারফেস প্রয়োগ করে এবং Google Analytics-এ একটি ব্যতিক্রম পাঠানোর সময় এর setDescription পদ্ধতিতে কল করে আপনার নিজস্ব পার্সার বাস্তবায়ন করতে পারেন।