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

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

วิธีทำ:

Google Apps Script เป็นภาษาสคริปต์สำหรับการพัฒนาแอปพลิเคชันเบาในแพลตฟอร์ม Google Apps ไม่มีฟังก์ชันในตัวโดยตรง เช่น console.error() สำหรับการเขียนไปยัง stderr เช่นที่คุณอาจพบใน Node.js หรือ Python อย่างไรก็ตาม คุณสามารถจำลองพฤติกรรมนี้ได้โดยใช้บริการบันทึกข้อมูลของ Google Apps Script หรือการจัดการข้อผิดพลาดที่กำหนดเองเพื่อจัดการและแยกการแสดงผลข้อผิดพลาด

ตัวอย่าง: ใช้ Logger สำหรับข้อความแสดงข้อผิดพลาด

function logError() {
  try {
    // จำลองข้อผิดพลาด
    const result = 1 / 0;
    if(!isFinite(result)) throw new Error("Attempted division by zero");
  } catch (e) {
    // เขียนข้อความแสดงข้อผิดพลาดไปยัง Logs
    Logger.log('Error: ' + e.message);
  }
}

เมื่อคุณรัน logError(), จะเขียนข้อความแสดงข้อผิดพลาดไปยังบันทึกของ Google Apps Script ซึ่งคุณสามารถดูได้โดย ดู (View) > บันทึก (Logs) นี่ไม่ใช่ stderr อย่างแท้จริง แต่มีวัตถุประสงค์คล้ายกับการแยกบันทึกข้อผิดพลาดออกจากผลลัพธ์มาตรฐาน

การบันทึกข้อผิดพลาดขั้นสูง

สำหรับการดีบั๊กและการบันทึกข้อผิดพลาดขั้นสูง คุณสามารถใช้ Stackdriver Logging ซึ่งปัจจุบันเรียกว่า Google Cloud’s Operations Suite

function advancedErrorLogging() {
  try {
    // สร้างข้อผิดพลาดโดยเจตนา
    const obj = null;
    const result = obj.someProperty;
  } catch (e) {
    console.error('Error encountered: ', e.toString());
  }
}

สิ่งนี้จะนำข้อความแสดงข้อผิดพลาดไปยัง Stackdriver Logging ที่มีการจัดการเป็นบันทึกข้อผิดพลาด Stackdriver/Google Cloud’s Operations Suite มีความละเอียดและสามารถค้นหาได้มากกว่า Logger

ศึกษาลึก

การขาดกระแส stderr ที่เฉพาะเจาะจงใน Google Apps Script สะท้อนถึงลักษณะและที่มาของเขาในฐานะภาษาสคริปต์บนคลาวด์ ซึ่งผลลัพธ์แบบคอนโซลหรือเทอร์มินัลแบบดั้งเดิม (เช่น stdout และ stderr) ไม่เกี่ยวข้องมากนัก จากประวัติศาสตร์ Google Apps Script ถูกออกแบบมาเพื่อเพิ่มฟังก์ชันของ Google Apps ด้วยสคริปต์ง่ายๆ โดยเน้นที่ความง่ายในการใช้งานมากกว่าคุณสมบัติครบถ้วนที่มีให้ในสภาพแวดล้อมการโปรแกรมที่ซับซ้อนมากขึ้น

อย่างไรก็ตาม การพัฒนาของ Google Apps Script ที่มีทิศทางไปสู่การพัฒนาแอปพลิเคชันที่ซับซ้อนมากขึ้นได้กระตุ้นให้นักพัฒนานำเสนอวิธีการแก้ไขปัญหาสำหรับการจัดการข้อผิดพลาดและบันทึกข้อมูลโดยใช้บริการที่มีอยู่เช่น Logger และการผสานรวมกับ Google Cloud’s Operations Suite วิธีการเหล่านี้ แม้จะไม่ใช่การดำเนินการ stderr โดยตรง แต่เสนอทางเลือกที่ทรงพลังสำหรับการจัดการข้อผิดพลาดและการบันทึกการวินิจฉัยในสภาพแวดล้อมที่เน้นคลาวด์

สิ่งสำคัญคือ ในขณะที่วิธีการเหล่านี้ให้บริการในระบบนิเวศของ Google Apps Script พวกเขาเน้นข้อจำกัดของแพลตฟอร์มเมื่อเทียบกับสภาพแวดล้อมการโปรแกรมแบบดั้งเดิม สำหรับนักพัฒนาที่ต้องการกลยุทธ์การจัดการข้อผิดพลาดที่ละเอียดและมีชั้นเชิง การผสานรวมกับบริการบันทึกภายนอกหรือการใช้ Google Cloud Functions ซึ่งเสนอการจัดการ stderr และ stdout แบบแบบดั้งเดิมอาจเป็นทางเลือกที่ดีกว่า