Del via


Fejlhåndtering

Power Fx understøtter fejlhåndtering på formelniveau. Denne funktion er som standard slået til for alle nye apps. Nogle ældre apps kan dog have slået den fra i Appindstillinger. Vi anbefaler, at denne funktion er slået til.

Sådan kontrollerer du, om denne funktion er slået til:

  1. Åbn en lærredsapp til redigering.
  2. Gå til fanen Indstillinger for>opdateringer>, der er udgået .
  3. Sørg for, at Deaktiver administration på formelniveau er deaktiveret.

Når denne indstilling er aktiveret, kan du bruge formler som IfError, IsError, Errorog IsBlankorError. Disse funktioner hjælper dig med at registrere fejl, angive alternative værdier eller foretage bestemte handlinger baseret på fejlen. Når du aktiverer denne indstilling, kan du skrive null-værdier eller tomme værdier til datakilder. Når du slår denne funktion fra, returneres fejl som tomme værdier.

Håndtering af valideringsfejl

Disse funktioner hjælper med at validere input, f.eks. forkerte formater eller obligatoriske felter. Brug If-sætninger eller funktioner som IsBlank og IsError til at validere brugerinput. Angiv tydelige fejlmeddelelser, og undgå yderligere behandling, indtil inputtet er korrigeret.

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

Fejlhåndtering i forbindelse med patch-opdatering

I lighed med det forrige eksempel, kan Error funktioner hjælpe med at fange fejl under opdatering af data til en datakilde. Funktionen Patch rapporterer fejl på to måder.

Den kan returnere en fejlværdi som følge af handlingerne.

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

Du kan registrere fejl ved at bruge IsError og erstatte eller undertrykke dem ved hjælp IfErroraf .

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)
)

Håndtering af formularfejl

Når du bruger Formularer til at sende data ved hjælp af funktionen SubmitForm , skal du bruge egenskaben OnFailure Formularkontrolelement til at give brugerne besked om fejlmeddelelser.

// 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);

Brugerdefineret fejlmeddelelse ved hjælp af egenskaben OnError

Egenskaben Power Apps OnError registrerer alle ubehandlede fejl i din app. Ved hjælp af egenskaben OnError kan du køre et udtryk, hver gang appen støder på en ubehandlet fejl. Du kan f.eks. gemme fejlen i en variabel eller bruge en funktion til IfError at erstatte fejlen med en anden værdi. Hvis du vil bruge egenskabenOnError, skal du føje den til den app, hvor du vil håndtere fejl. Skriv derefter en formel i egenskabsfeltet OnError for at angive den fejlmeddelelse, du vil have vist.

App.OnError kan ikke erstatte fejlen, f.eks IfError . kan. Når App.OnError der køres, er fejlen allerede opstået, og resultatet har allerede gennemgået andre formler. App.OnError styrer kun, hvordan fejlen rapporteres til slutbrugeren. Det giver også opretteren mulighed for at logge fejlen, hvis vedkommende ønsker det.

Denne kode i App.OnError kan hjælpe dig med at finde kilden til fejlen:

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

Næste trin