Baca dalam bahasa Inggris

Bagikan melalui


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.

Coba ekspresi

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.

Rekaman kesalahan

[
    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

Contoh kesalahan

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"