Kesalahan
Kesalahan dalam bahasa rumus Power Query M adalah indikasi bahwa proses mengevaluasi ekspresi tidak dapat menghasilkan nilai. Kesalahan dimunculkan oleh operator dan fungsi yang mengalami kondisi kesalahan atau dengan menggunakan ekspresi kesalahan . Kesalahan ditangani menggunakan ekspresi coba . Ketika kesalahan dimunculkan, nilai ditentukan yang dapat digunakan untuk menunjukkan mengapa kesalahan terjadi.
Ekspresi percobaan mengonversi nilai dan kesalahan menjadi nilai rekaman yang menunjukkan apakah ekspresi coba menangani kesalahan, atau tidak, dan nilai yang tepat atau rekaman kesalahan yang diekstrak saat menangani kesalahan. Misalnya, pertimbangkan ekspresi berikut yang menimbulkan kesalahan lalu tangani segera:
try error "negative unit count"
Ekspresi ini mengevaluasi ke nilai rekaman berlapis berikut, menjelaskan [HasError], [Error]
pencarian bidang , dan [Message]
dalam contoh harga satuan sebelumnya.
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Kasus umumnya adalah mengganti kesalahan dengan nilai default. Ekspresi coba dapat digunakan dengan klausul sebaliknya opsional untuk mencapainya dalam bentuk ringkas:
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
Contoh sebelumnya mengakses Sales[UnitPrice]
bidang dan memformat nilai yang menghasilkan hasilnya:
"Unit Price: 2"
Jika bidang Unit telah nol, maka UnitPrice
bidang akan memunculkan kesalahan yang akan ditangani oleh percobaan. Nilai yang dihasilkan kemudian akan menjadi:
"No Units"