การเขียนไปยังข้อผิดพลาดมาตรฐาน

Dart:
การเขียนไปยังข้อผิดพลาดมาตรฐาน

วิธีการ:

ใน Dart การเขียนไปยัง stderr เป็นเรื่องง่ายโดยใช้วัตถุ stderr ที่มีอยู่ใน dart:io นี่คือตัวอย่างพื้นฐาน:

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: 2023-04-01 00:00:00.000: ข้อผิดพลาดร้ายแรง: เกิดสิ่งไม่ดีอย่างมากขึ้น.

วิธีนี้ให้ระดับการปรับแต่งและควบคุมที่สูงขึ้นเกี่ยวกับสิ่งที่ได้รับการบันทึกเป็นข้อผิดพลาดและวิธีการจัดรูปแบบ ซึ่งอาจเป็นประโยชน์มากในแอปพลิเคชันที่ใหญ่และซับซ้อนยิ่งขึ้น