স্ট্যান্ডার্ড এররে লিখন

Dart:
স্ট্যান্ডার্ড এররে লিখন

কিভাবে:

Dart এ, dart:io তে উপলব্ধ stderr অবজেক্ট ব্যবহার করে stderr এ লেখা অত্যন্ত সহজ। এখানে একটি বেসিক উদাহরণ দেওয়া হল:

import 'dart:io';

void main() {
  stderr.writeln('এটি একটি এরর ম্যাসেজ।');
}

চালানো হলে আউটপুট:

এটি একটি এরর ম্যাসেজ।

এই ম্যাসেজটি stderr স্ট্রিমে পাঠানো হয়, যা সাধারণত কনসোল বা টার্মিনালে দেখানো হয়।

একটি বেশি জটিলতার উদাহরণ দেখানোর জন্য, যেমন একটি ব্যতিক্রম লগিং করা, Dart এর সমৃদ্ধ সেট অফ ফিচারগুলি সংক্ষিপ্ত এবং কার্যকরী এরর হ্যান্ডলিং অনুমোদন করে:

import 'dart:io';

void riskyOperation() {
  try {
    // এমন একটি অপারেশন অনুমান করুন যা থ্রো করতে পারে
    throw Exception('কিছু ভুল হয়ে গেছে!');
  } catch (e) {
    stderr.writeln('এরর: $e');
  }
}

void main() {
  riskyOperation();
}

চালানো হলে আউটপুট:

এরর: Exception: কিছু ভুল হয়ে গেছে!

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

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

import 'dart:io';
import 'package:logging/logging.dart';

final logger = Logger('MyAppLogger');

void setupLogging() {
  logger.onRecord.listen((record) {
    if (record.level >= Level.SEVERE) {
      stderr.writeln('${record.level.name}: ${record.time}: ${record.message}');
    }
  });
}

void main() {
  setupLogging();
  logger.severe('Severe Error: কিছু গুরুতর খারাপ ঘটেছে।');
}

চালানো হলে আউটপুট:

SEVERE: 2023-04-01 00:00:00.000: Severe Error: কিছু গুরুতর খারাপ ঘটেছে।

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