Error.Record สร้างระเบียนข้อผิดพลาดที่มีข้อมูลโครงสร้าง ด้วย reason, message, detail และ errorCode เพื่อให้การจัดการข้อผิดพลาดละเอียดขึ้น
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| reason | text | ข้อความที่อธิบายเหตุผลหลักของข้อผิดพลาด (เช่น ‘DivideByZero’, ‘ValidationFailed’, ‘CustomerNotFound’) | |
| [message]ไม่บังคับ | nullable text | null | ข้อความรายละเอียดเพิ่มเติมที่อธิบายข้อผิดพลาด ช่วยให้ผู้ใช้เข้าใจสาเหตุ |
| [detail]ไม่บังคับ | any | null | ข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด สามารถเป็นข้อความ ตัวเลข หรือโครงสร้างอื่น |
| [parameters]ไม่บังคับ | nullable list | null | รายการค่าที่ให้บริบทเพิ่มเติมสำหรับการวินิจฉัยหรือการจัดการแบบโปรแกรมเชิง |
| [errorCode]ไม่บังคับ | nullable text | null | รหัสข้อผิดพลาดที่ระบุตัวตนสำหรับการอ้างอิง (เช่น ‘ERR404’, ‘ERR500’) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Error.Record สร้างข้อมูลข้อผิดพลาด (error record) ที่มีโครงสร้างชัดเจน ด้วยการระบุ reason, message, detail และ errorCode ทำให้การจัดการข้อผิดพลาดเป็นไปอย่างมีระเบียบ แทนที่จะปล่อยให้ Power Query สร้างข้อความข้อผิดพลาดแบบสุ่มๆ
ที่เจ๋งคือ Error.Record ช่วยให้คุณสร้างข้อผิดพลาดที่กำหนดเองกับข้อมูลบริบท เช่น รหัสลูกค้าที่ไม่ถูกต้อง หรือข้อมูลที่ไม่ตรงกับรูปแบบ ทำให้ผู้ใช้เข้าใจปัญหาได้ชัดเจนมากกว่าข้อความผิดพลาดปกติ
ส่วนตัวผม Error.Record ถูกใช้ประจำเวลาต้องตรวจสอบเงื่อนไขข้อมูลขาเข้า เพราะมันช่วยให้ debugging ง่ายขึ้นจริงๆ แล้วลูกค้าเข้าใจปัญหาได้มากกว่าข้อความผิดพลาดปกติของ Power Query 😎
สร้างข้อผิดพลาดเมื่อพยายามหารด้วยศูนย์ โดยใช้ Error.Record ร่วมกับ try-catch เพื่อจัดการข้อผิดพลาดแบบมีเงื่อนไข reason คือ 'DivideByZero' ส่วน message คือข้อความที่อธิบายปัญหา
สร้างข้อผิดพลาดที่มีรายละเอียดครบครัน พร้อมทั้ง reason, message ที่มีข้อมูลลูกค้า, detail, parameters, และ errorCode ทำให้สามารถติดตามและจัดหมวดหมู่ข้อผิดพลาดได้ง่าย
ใช้ Error.Record ร่วมกับ try-catch เพื่อสร้างข้อผิดพลาดที่กำหนดเองเมื่อการแปลงประเภทข้อมูลล้มเหลว ช่วยให้ผู้ใช้เข้าใจสาเหตุของปัญหาและวิธีแก้ไข
สร้างการตรวจสอบข้อมูลในตารางโดยใช้ Table.AddColumn และ Error.Record เพื่อเก็บข้อผิดพลาดของแต่ละแถว แต่ละข้อมูลที่ไม่ตรงตามเงื่อนไข (อายุไม่อยู่ในช่วง 0-120) จะสร้าง error record ที่มีบริบทเฉพาะ ช่วยให้ค้นหาข้อมูลที่มีปัญหาได้ง่าย
ผมจะอธิบาย error ใช้สำหรับการแจ้งข้อผิดพลาดแบบง่ายๆ เช่น error "Something went wrong" ส่วน Error.Record ใช้สำหรับสร้างระเบียนข้อผิดพลาดที่มีข้อมูลโครงสร้าง ประกอบด้วย reason, message, detail, parameters และ errorCode ทำให้สามารถจัดการข้อผิดพลาดได้ละเอียดและมีประสิทธิภาพกว่า
ผมแนะนำให้ใช้ error Error.Record(…) ภายใน try block แล้ว catch ไว้ เพราะอย่างนี้คุณสามารถเข้าถึงข้อมูลข้อผิดพลาดทั้งหมดที่ Error.Record สร้างให้ได้ ส่วน try-otherwise ใช้สำหรับเงื่อนไขแล้ว จึงไม่เหมาะสำหรับ Error.Record
ผม reason เป็นพารามิเตอร์บังคับเท่านั้น ส่วนอื่นๆ ทั้งหมดเป็นตัวเลือก แต่ส่วนตัวผม ถ้าต้องสร้างข้อผิดพลาด ผมอยากให้เติม message กับ errorCode ด้วย เพราะมันช่วยให้ผู้ใช้เข้าใจปัญหาได้และสามารถค้นหาจัดหมวดหมู่ข้อผิดพลาดได้ในภายหลัง
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Error.Record จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Value.ViewError ใช้สำหรับการประมวลผล
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่