Udostępnij za pośrednictwem


Obsługa błędów

Język Power Fx posiada nową wersję zapoznawczą umożliwiającą obsługę błędów na poziomie Formuły. Jest ona domyślnie włączona w Ustawieniach.

Zrzut ekranu z sekcji Nadchodzące funkcje w Ustawieniach pokazujący, że zarządzanie błędami na poziomie formuł jest ustawione na Wł.

To ustawienie daje dostęp do formuł takich jak IfError, IsError, Error oraz IsBlankorError. Funkcje te umożliwiają wykrywanie błędów, dostarczanie alternatywnych wartości lub podejmowanie określonych działań w oparciu o napotkany błąd.

Obsługa błędów weryfikacji

Powyższe funkcje mogą pomóc w weryfikacji danych wejściowych, takich jak nieprawidłowy format lub wymagane pola. Użyj instrukcji If lub funkcji takich jak IsBlank i IsError do weryfikacji danych wprowadzanych przez użytkownika. Podawaj jasne komunikaty o błędach i zapobiegaj dalszemu przetwarzaniu, dopóki dane wejściowe nie zostaną poprawione.

If( IsBlank(TextInput.Text),
    Notify("Field cannot be blank", 
    NotificationType.Error),
    // Continue with processing
)

Obsługa błędów funkcji aktualizacji

Podobnie jak w poprzednim przykładzie, funkcje Error mogą pomóc wychwycić błędy podczas aktualizacji danych do źródła danych. Funkcja Patch zgłasza błędy na 2 sposoby.

Może zwrócić wartość błędu jako wynik operacji.

UpdateContext(
    {   
    result : Patch(
             Feeds,
             Defaults(Feeds),
             {
                 createdon: Now(),
                 crde8_content: TextInput1_1.Text
                 cr9ce_imageurl: filename
             }
        )
    }
)

Błędy mogą być wykrywane za pomocą IsError i zastępowane lub eliminowane za pomocą IfError

IfError(result, Notify("There was an issue saving data" , NotificationType.Error));
IfError(result, Notify("There was an issue saving data" , & FirstError.Message, NotificationType.Error))

If(
    IsError(
        Patch(
            Feeds,
            Defaults(Feeds),
            {
                createdon: Now(),
                crde8_content: TextInput1_1.Txt,
                cr9ce_imageurl: filename        
            }
        )
    ),
    Notify("Error: There was an issue saving data", NotificationType.Error)
)

Obsługa błędów formularzy

Podczas korzystania z formularzy do przesyłania danych za pomocą funkcji SubmitForm, użycie właściwości kontrolki formularza OnFailure w celu powiadomienia o błędzie.

// OnSelect property of the form's submit button
SubmitForm(frm_SubmitData);

// OnSuccess property of the form
Navigate('Success Screen');

// OnFailure property of the form
Notify("Error: the invoice could not be created", NotificationType.Error);

Niestandardowy komunikat o błędzie z właściwością OnError

Power Apps OnError to właściwość aplikacji, która pozwala przechwytywać wszystkie nieobsługiwane błędy. Właściwość OnError daje możliwość wykonania wyrażenia, które jest uruchamiane za każdym razem, gdy błąd nie jest obsługiwany przez aplikację (np. przechowując go w zmiennej lub używając funkcji takiej jak IfError, aby zastąpić go inną wartością). Aby użyć właściwości OnError, musisz dodać ją do aplikacji, do której chcesz ją zastosować. Następnie można określić komunikat o błędzie, który ma zostać wyświetlony, wpisując formułę w polu właściwości OnError.

Ważne jest, aby pamiętać, że App.OnError nie może zastąpić błędu w taki sam sposób, jak IfError może. W momencie wykonania App.OnError błąd już wystąpił, a jego wynik rozprzestrzenił się przez inne formuły. App.OnError kontroluje jedynie sposób zgłaszania błędu użytkownikowi końcowemu i zapewnia hak dla twórcy, aby w razie potrzeby zarejestrować błąd.

Ten kod w App.OnError może pomóc zlokalizować źródło błędu:

Notify(
    Concatenate(
        FirstError.Message,
        ", Observed: ",
        FirstError.Observed,
        ", Source: ",
        FirstError.Source
    ),
    NotificationType.Error
)

Następny krok