ข้อผิดพลาด
ข้อผิดพลาดในภาษาสูตร Power Query M เป็นข้อบ่งชี้ว่ากระบวนการประเมินนิพจน์ไม่สามารถให้ผลลัพธ์เป็นค่าได้ ข้อผิดพลาดเกิดจากตัวดําเนินการและฟังก์ชันที่เป็นไปตามเงื่อนไขของข้อผิดพลาดหรือโดยใช้นิพจน์ข้อผิดพลาด ข้อผิดพลาดได้รับการจัดการโดยใช้นิพจน์ try เมื่อเกิดข้อผิดพลาด จะมีการระบุค่าที่สามารถใช้เพื่อระบุสาเหตุที่เกิดข้อผิดพลาด
นิพจน์ try แปลงค่าและข้อผิดพลาดเป็นค่าเรกคอร์ดที่ระบุว่านิพจน์ try จัดการกับข้อผิดพลาดหรือไม่ และค่าที่เหมาะสมหรือเรกคอร์ดข้อผิดพลาดถูกแยกออกเมื่อจัดการข้อผิดพลาดหรือไม่ ตัวอย่างเช่น พิจารณานิพจน์ต่อไปนี้ที่ทําให้เกิดข้อผิดพลาด และจัดการทันที:
try error "negative unit count"
นิพจน์นี้จะประเมินเป็นค่าเรกคอร์ดที่ซ้อนกันต่อไปนี้ โดย [HasError], [Error]
อธิบายการค้นหาเขตข้อมูล และ [Message]
ในตัวอย่างหน่วย-ราคาก่อนหน้า
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
กรณีทั่วไปคือการแทนที่ข้อผิดพลาดด้วยค่าเริ่มต้น คุณสามารถใช้นิพจน์ try ด้วยส่วนคําสั่งอื่นที่เลือกได้เพื่อให้ได้ผลลัพธ์ในรูปแบบกะทัดรัด:
try error "negative unit count" otherwise 42
// equals 42
let Sales =
[
ProductName = "Fishing rod",
Revenue = 2000,
Units = 1000,
UnitPrice = if Units = 0 then error "No Units"
else Revenue / Units
],
//Get UnitPrice from Sales record
textUnitPrice = try Number.ToText(Sales[UnitPrice]),
Label = "Unit Price: " &
(if textUnitPrice[HasError] then textUnitPrice[Error][Message]
//Continue expression flow
else textUnitPrice[Value])
in
Label
ตัวอย่างก่อนหน้านี้เข้าถึง Sales[UnitPrice]
เขตข้อมูล และจัดรูปแบบค่าทําให้เกิดผลลัพธ์:
"Unit Price: 2"
หากเขตข้อมูล Units เป็นศูนย์ UnitPrice
จากนั้นเขตข้อมูล จะทําให้เกิดข้อผิดพลาดซึ่งจะถูกจัดการโดยลอง จากนั้น ค่าผลลัพธ์จะเป็นดังนี้:
"No Units"