次の方法で共有


Errors

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 式は、省略可能な otherwise 句と共に使用して、コンパクトな形式で実現できます。

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"

[単位] フィールドが 0 の場合、 UnitPrice フィールドでエラーが発生し、try によって処理された可能性があります。 結果の値は次のようになります。

"No Units"