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 แบบแบบดั้งเดิมอาจเป็นทางเลือกที่ดีกว่า