Funktsioonid IfError ja IsError Power Appsis

[See artikkel on väljalaske-eelne dokumentatsioon ja seda võidakse muuta.]

Tuvastab tõrked ja pakub alternatiivset väärtust või võtab meetmeid.

Märkus

IfError

IfError funktsioon testib väärtusi, kuni leiab tõrke. Kui funktsioon avastab tõrke, siis funktsioon arvutab ja tagastab vastava asendamise väärtuse ning peatab edasise hindamise. Vaikeväärtuse saab esitada ka juhul, kui vigu ei leita. Funktsiooni IfError struktuur meenutab funkstiooni If oma: IfError testib vigu, kui If testib väärtust tõene.

Kasutage funkstiooni IfError, et asendada sobiva väärtusega tõrge, et järgnevad etapilised arvutused saaksid jätkuda. Kasutage seda funktsiooni näiteks juhul, kui kasutaja sisestus võib põhjustada nulliga jagamist.

IfError( 1/x, 0 )

See valem naaseb väärtusele 0 juhul, kui väärtus x on null, kuna 1/x tulemuseks on tõrge. Kui x pole null, siis tagastatakse 1/x.

Edasise töötlemise peatamine

Kui aheldatakse valemid kokku käitumise valemites, näiteks:

Patch( DS1, ... );
Patch( DS2, ... )

Teine funktsioon Patch väärtusele DS2 proovitakse ka siis, kui PatchDS1 ei õnnestu. Tõrke ulatus on piiratud iga aheldatud valemiga.

Kasutage funkstiooni IfError toimingu tegemiseks ja jätkake töötlemist ainult siis, kui toiming õnnestus. Funktsiooni IfError rakendamine selles näites.

IfError(
    Patch( DS1, ... ), Notify( "problem in the first action" ),
    Patch( DS2, ... ), Notify( "problem in the second action" )
)

Kui funktsioonil Patch väärtusel DS1 on probleem, siis käivitatakse esimene teavitamine. Edasist töötlemist ei toimu, sh teine Patch väärtusel DS2. Kui esimene Patch on edukas, siis teine Patch käivitub.

Kui see on saadaval tagastatakse valikuline DefaultResult argument juhul, kui tõrkeid ei avastata. Ilma selle argumendita viimane argument Value tagastatakse.

Viimase näite loomisel saab kontrollida IfError poolt tagastatavat väärtust, et teha kindlaks, kas seal oli probleeme.

IfError(
    Patch( DS1, ... ), Notify( "problem in the first action" );  false,
    Patch( DS2, ... ), Notify( "problem in the second action" ); false,
    true
)

Tüübi ühilduvus

IfError tagastab ühe selle argumendi väärtuse. Kõikide IfError poolt tagastatavad väärtuste tüübid peavad olema ühilduvad.

Viimases näites tagastab Patch, mis ei ühildu kahendmuutujatega, mida kasutatakse Replacement valemites või DefaultResult-is. Mis on hea, sest puudub olukord, kus nende Patch väljakutsete tagastusväärtus tagastatakse IfError poolt.

Märkus

Kui käitumine on muutunud, peavad kõik funkstiooni IfError argumendid olema praegu ühilduvad.

Eespool kirjeldatud lihtsas näites:

IfError( 1/x, 0 )

Tüübid 1/x ja 0 on mõlemad ühilduvad, sest mõlemad on numbrid. Kui nad ei ole, siis teine argument määratakse vastavalt esimese argumendi tüübile.

Excel kuvab #DIV/0! kui jagatakse nulliga.

Proovige IfError järgmisega selle asemel.

IfError( 1/x, "#DIV/0!" )

Ülaltoodud valem ei tööta. Tekstistring "#DIV/0!" määratakse funktsiooni IfError esimese argumendi tüübiks, mis on arv. Funktsiooni IfError tulemus on veel üks tõrge, kuna tekstistringi ei saa teisendada. Lahenduseks teisendage esimene argument tekstistringiks, nii et IfError tagastaks alati tekstistringi.

IfError( Text( 1/x ), "#DIV/0!" )

Nagu eespool öeldud, võib IfError tagastada vea, kui Replacement või DefaultResult on viga.

ErrorInfo

Asenduse valemites sisaldab ErrorInfo teavet leitud vea kohta. See kirje sisaldab:

ErrorInfo väli Tüüp Kirjeldus
Juhtelement Tekstistring Praeguse juhtelemendi nimi, mida kasutatakse vea ilmnemisel aruande loomiseks.
Liik ErrorKind enum (number) Kategoriseeritud tõrge.
Teade Tekstistring Teade tõrke kohta, mis sobib lõppkasutajale kuvamiseks.
Teavita Loogika Kui IfError ei leia, siis kas kuvatakse lõppkasutaja teavituse bänner.
Atribuut Tekstistring Praeguse atribuudi nimi, mida kasutatakse vea ilmnemisel aruande loomiseks.

Näiteks kaaluge järgmist valemit, kui juhtelemendi Nupp atribuuti OnSelect:

IfError( 1/0, Notify( "Internal error: " & ErrorInfo.Control & "." & ErrorInfo.Property ) )

Ülaltoodud näitevalemis kuvatakse järgmine bänner, kui nupp on aktiveeritud.

Aktiveeritakse nupu juhtelement, mis näitab teadet funktsioonilt Notify.

IsError

Funktsioon IsError testib vea väärtust. Tagastusväärtus on kahendmuutuja tõene või väär.

Funktsiooni IsError kasutamine aitab vältida tõrke edasist töötlemist.

Süntaks

IfError( Value1, Replacement1 [, Value2, Replacement2, ... [, DefaultResult ] ] )

  • Väärtus(ed) – nõutav. Valemid vea väärtuse testimiseks..
  • Replacement(s) – nõutav. Hinnatavad valemid ja tagastatavad väärtused, kui vastavad argumendid Value tagastasid vea.
  • DefaultResult – valikuline. Valemid, mida hinnatakse, kui valem ei leia tõrkeid.

IsError( Value )

  • Value – nõutav. Valemid vea väärtuse testimiseks.

Näited

Lihtne IfError

Valem Kirjeldus Tulem
IfError( 1, 2 ) Esimene argument pole tõrge. Funktsioonil ei ole muid tõrkeid, mida kontrollida, ja tagastamise vaikeväärtust. Funktsioon tagastab viimase hinnatava value argumendi. 1
IfError( 1/0, 2 ) Esimene argument tagastab veaväärtuse (nulliga jagamise tõttu). Funktsiooni abil hinnatakse teist argumenti ja tagastatakse see tulemina. 2
IfError( 10, 20, 30 ) Esimene argument pole tõrge. Funktsioonil ei ole muid tõrkeid, mida kontrollida, kuid on tagastatav vaikeväärtus. Funktsioon tagastab DefaultResult argumendi. 30
IfError( 10, 11, 20, 21, 300 ) Esimene argument 10 ei ole viga, seega ei hinda funktsioon selle argumenti vastavat asendamist 11. Kolmas argument 20 ei ole samuti viga, seega ei hinda funktsioon selle argumenti vastavat asendamist 21. Viiendal argumentil 300 puudub vastav asendus ja see on vaiketulem. Funktsioon tagastab selle tulemi, kuna valem ei sisalda tõrkeid. 300
IfError( 1/0, Notify( "Tekkis sisemine probleem" ) ) Esimene argument tagastab veaväärtuse (nulliga jagamise tõttu). Funktsioon hindab teist argumenti ja kuvab kasutajale sõnumi. Funkstiooni IfError tagastusväärtus on funktsiooni Notify tagastusväärtus, teisendatud samasse tüüpi kui funktsioni IfError esimene argument (number). 1

Lihtne IsError

Valem Kirjeldus Tulem
IsError( 1 ) Argument pole tõrge. väär
IsError( 1/0 ) Argument on tõrge. tõene
If( IsError( 1/0 ), Notify( "Tekkis sisemine probleem" ) ) Funktsiooni IsError argument tagastab tõrkeväärtuse (nulliga jagamise tõttu). See funktsioon tagastab väärtuse tõene, mistõttu funktsioon If kuvab kasutajale teate funktsiooniga Notify . Funkstiooni If tagastusväärtus on funktsiooni Notify tagastusväärtus, teisendatud samasse tüüpi kui funktsioni If esimene argument (kahendmuutuja). tõene

Samm-sammult

  1. Lisage juhtelement tekstisisend ja nimetage see TekstInput1, kui see pole vaikimisi selle nimega.

  2. Lisage juhtelement silt ja nimetage see Silt1, kui see pole vaikimisi selle nimega.

  3. Seadke valem juhtelemendi Silt1 atribuudile Tekst:

    IfError( Value( TextInput1.Text ), -1 )
    
  4. Väljale TextInput1, sisestage 1234.

    Silt1 näitab väärtust 1234, kuna see on sobiv sisend funktsioonile Value.

  5. Väljale TextInput1, sisestage ToInfinity.

    Silt1 näitab väärtust -1, kuna see pole sobiv sisend funktsioonile Value. Kui funktsiooni Value pole mähitud funktsiooniga IfError, ei kuva silt väärtust, kuna tõrget käsitletakse tühjana.

Vt ka

Valemi viide Power Appsile