prøv å fange i matlab

prøv å fange i matlab
Følgende artikkel forklarer hvordan du bruker prøvefangeren i MATLAB®. Try-Catch-instruksjonen er et av de mest brukte programmeringsspråk globalt, og utførelsesmodus er den samme for dem alle. Denne artikkelen inneholder praktiske eksempler og bilder for å hjelpe leseren å forstå hvordan du bruker denne uttalelsen til å håndtere feil i utførelse av sanntid.

Matlab prøv fangst syntaks

prøve
uttalelser
Fangs unntak
uttalelser
slutt

Matlab prøv fangstbeskrivelser og eksempler

En prøvefangst uttalelse er et verktøy som gir programmet stabilitet og robusthet mot unntak eller feil i reell utførelsestid. Disse unntakene eller feilene kan bli fanget slik at når en av disse hendelsene oppstår, kan de håndteres på en forutsigbar og ryddig måte og ikke påvirker systemytelsen.

Try-Catch-setningen består av to blokker: prøv er blokken som omslutter den delen av koden som kan generere et unntak eller feil, og fangsten er blokken som håndterer disse unntakene for å bli trygt behandlet. Når et forsøk får et unntak, gir det kontroll for å fange for behandling. Nedenfor vil vi se på noen praktiske eksempler ved å bruke Try-Catch-setningen for å forstå bedre hvordan det fungerer.

Hvordan oppdage og behandle et unntak eller feil med prøvekampanlegget i MATLAB

Dette eksemplet viser hvordan du bruker prøvekampanlegget mot en felles feil når du beregner firkantede røtter med RealSQRT () -funksjonen. Dette er en av de tre grunnleggende funksjonene Matlab har for denne typen matematisk operasjon, og den godtar bare reelle tall med et positivt tegn som inngangsargumenter. Hvis denne regelen ikke er fornøyd, genereres en feil.

La oss deretter se på å oppdage og håndtere denne feilen ved å lage en konsollapplikasjon som beregner firkantede røtter ved å bruke RealSQRT () -funksjonen. Denne operasjonen utføres i prøveblokken. Når en feil oppstår, føres kontroll for å fange for å løse beregningen ved hjelp av SQRT () -funksjonen, som godtar negative eller komplekse tall.

Opprett et skript, lim inn denne koden og klikk på Kjør. For å lukke applikasjonen, trykk CTRL+C

mens 1
spør = 'Angi en verdi for å få kvadratroten.';
a = input (spør);
prøve
x = realsqrt (a);
å fange
disp 'prøve fant en feil og passerte kontrollen for å fange'
x = sqrt (a);
slutt
disp (['The Square root er:', num2str (x)])
slutt

Når appen er i gang, oppgir vi verdiene vi trenger for å beregne kvadratroten.

Hvis negative eller komplekse verdier legges inn, i stedet for å øke en feil i RealSQRT () -funksjonen, vil den passere kontrollen til fangst, og operasjonen blir løst med SQRT () -funksjonen. Når dette skjer, vises følgende melding i kommandokonsollen:

"Prøv å finne en feil og passerte kontrollen for å fange"

Hvordan identifisere feil med "mexception" og administrere dem med prøve fangst i matlab

Selv om å identifisere unntak med "Mexception" fortjener sin egen artikkel, vil vi kort forklare hvordan vi bruker denne ressursen, som hjelper oss å identifisere feil og er et effektivt komplement når vi bruker Try-Catch-setningen. MATLAB konstruerer et "mexception" -objekt med informasjon om feilen når en feil genereres. Denne informasjonen er veldig nyttig, da vi kan bruke den til å klassifisere og håndtere forskjellige spesifikke feil. Nedenfor kan du se innholdet i "mexception" med informasjon om en feil generert av den unike () funksjonen.

I det følgende eksemplet vil vi se hvordan du kan hente denne informasjonen for å behandle feilene riktig. For å gjøre dette, vil vi opprette en konsollapplikasjon der vi vil bruke den unike () -funksjonen til å generere feilene vi vil håndtere i fangstblokken og Prompt () -funksjonen for å legge inn dataene som vil være inngangsargumentene til unike ().

Når et forsøk tar en av disse feilene, lagrer den informasjonen i "Mexception", som vi vil lage med navnet "inf_err", som vist nedenfor.

Fang inf_err

I fangstblokken sender vi en melding til brukeren som informerer dem om å oppdage en feil med følgende melding "Prøv har funnet en feil og bestått kontroll for å fange".

Så tar vi feilidentifikatoren fra det tidligere opprettede objektet “err_inf.identifikator ”. Denne identifikatoren har form av en streng og gir oss informasjon om:

Funksjonen som genererte den Matlab: Unik

Og den spesifikke feilen Ukjent

'Matlab: unik: ukjentinput'

Denne strengen vil være argumentet om at bryteren betinget vil sammenligne med hver av de forhåndsdefinerte feilene i hvert tilfelle.

bytt inf_err.identifikator
Case 'Matlab: Unique: UnknownInput'
..
Case 'Matlab: Unique: Unknownflag'
..
slutt

En mulig løsning på feilen eller en melding til brukeren vil bli gitt i hvert tilfelle.

Lag et skript, lim inn denne koden og kjør skriptet. For å lukke applikasjonen, trykk CTRL+C.

ns = [1, 2, 3; 4, 5, 6];
mens 1
spør = 'Angi en verdi for å bli unik.';
a = input (spør);
prøve
x = unik (ns, a);
Fang inf_err
disp 'prøve fant en feil og passerte kontrollen for å fange';
disp (['feilidentifikator:', inf_err.identifikator]);
bytt inf_err.identifikator
Case 'Matlab: Unique: UnknownInput'
disp 'den spesifiserte oppføringen ble ikke funnet. Vær så snill, prøv på nytt.';
Case 'Matlab: Unique: Unknownflag'
disp 'den unike () -funksjonen gjenkjenner ikke flagget:';
disp (a);
disp 'gyldige flagg er' rader ',' første ',' siste ',' stabil ',' sortert ';
slutt
slutt
spør = 'trykk enter for å fortsette';
a = input (spør);
clc ();
slutt

Dataene som er lagt inn via ledeteksten sendes som det andre inngangsargumentet til den unike () -funksjonen. Denne inngangen tilsvarer 'Rows', 'First', 'Last', 'Stable', 'Sortered' eller 'Legacy' flagg av denne funksjonen, så den vil generere en feil hvis en streng blir sendt så unik () ikke anerkjent som et av disse flaggene. Den vil også generere en feil hvis denne inngangen får en numerisk verdi. Vi har forhåndsdefinert en sak i bryteren betinget for at hver av disse to feilene skal håndtere hver feil separat. I begge tilfeller blir meldinger sendt til brukeren som informerer dem om feilen og de mulige løsningene.

Når applikasjonen kjører i Matlab -konsollen, skriv inn 'Rows' i ledeteksten og trykk Enter. I dette tilfellet genereres ingen feil, og resultatet er = unik (ns, 'rader') og vises i kommandokonsollen.

I dette tilfellet ble strengen 'ABCD' sendt til unik (), og siden den ikke samsvarer med noen av flaggene, ble det generert en feil.

I "fangst" -blokken ble informasjonen om denne feilen samlet og klassifisert for å gi den en spesiell behandling, en melding til brukeren med flaggalternativene som er tilgjengelige i den unike () -funksjonen.

Det samme i dette tilfellet der en inngangstype som ikke ble akseptert ble sendt, vil dette generere en feil som "forsøk" -blokken oppdager og gir kontroll til "fangst" -blokken der feilen er klassifisert og behandlet; I dette tilfellet en melding til brukeren som rapporterer feilen og den mulige løsningen.

Konklusjon:

I denne artikkelen har vi forklart prøvefangst uttalelsen i Matlab. Vi ga også noen praktiske eksempler som demonstrerer bruken av "Try-Catch-setningen for håndtering av unntak. Vi forklarte også hvordan vi kan klassifisere feilene i "fangst" -blokken ved å bruke Mexception -objektet. Vi håper du fant denne Matlab -artikkelen nyttig. Se andre Linux -hint -artikler for flere tips og informasjon.