C# prøv fangst

C# prøv fangst
Et unntak er en stat eller en hendelse som skjedde på utførelsestidspunktet, som ikke er forventet mens du skriver kildekoden. For å overvinne denne situasjonen er det nødvendig med en spesiell kode sammen med unntaksobjektet for å rette opp dette. Denne koden inneholder fire blokker, hvorav to av dem er hovedartiklene som må brukes til at unntaket skal håndteres på Try and Catch Blocks. Disse fire blokkene er forklart nedenfor.
  • Prøv: Dette definerer en prøveblokk; Vi bruker uttalelsen som kan forårsake en hvilken som helst feil i denne prøveblokken.
  • Fangst: Denne blokken brukes til å fange unntaket generert av prøveblokken. Unntakets objekt genererer feilen i denne blokken.
  • Endelig: Enhver kode du vil generere i alle fall, skrives i denne blokken.
  • Kast: Denne blokken brukes til å kaste unntaket manuelt fra prøveblokken til fangstblokken.

Eksempel 1

For å implementere prøvefangstkonseptet, vil vi først bruke et enkelt program i C Sharp Code. Først vil vi erklære en rekke heltalldatatyper. Mens vi erklærer matrisen, trenger vi ikke å erklære størrelsen på matrisen. Men når verdiene er tildelt, er indeksen automatisk fast. Så i dette tilfellet vil utvalget av indeks 4 opprettes.

Int [] arr = 1, 2, 3, 4, 5;

For å vise alle elementene i en matrise, vil vi bruke en for loop. Funksjonen til matrisen, ARR.Lengde () brukes til å finne den totale lengden på matrisen opp som sløyfen vil iterere. Denne funksjonen kalles gjennom array -objektet. Konsolluttalelsen vil spille sin rolle i å vise matriserens elementer. Men vi vil bruke indeksen for matrisen som er utenfor dens faktiske størrelse. For eksempel er størrelsen på matrisen 4, men vi vil bruke indeksen 7 for å vise verdien.

Konsoll.WritLine (arr [7]);

Dette vil forårsake en feil; Et unntak vil bli kastet når denne linjen blir utført.

For å kompilere den forrige koden, har vi brukt MCS -kompilatoren som kreves i Linux -terminalen, mens Mono brukes til å utføre den kjørbare koden med .EXE Extension.

$ MCS -fil.CS
$ Mono -fil.EXE

Den resulterende verdien vil være gjenstandene som er til stede i en matrise som vises gjennom "for" -sløyfen. Men hva med den siste linjen som ble brukt til å vise varen på den 7. indeksen for matrisen? Indeksen er utenfor det gitte området, så et unntak vil oppstå.

For å overvinne denne feilen eller for å unngå unntaket, bruker vi begrepet prøve og fange. Disse to er verktøyene vi bruker i koden som hjelper til med å utføre koden uten å fremheve feilen som gjør at programmet avsluttes.

Try-catch-fenomenet fungerer slik at uttalelsen eller koden du tror kan forårsake en feilgenerering er skrevet inne i prøveorganet. For eksempel vil setningen som brukes til å vise verdien av den 7. indeksen, skrevet i forrige kode, bli brukt inne i prøvekroppen.

Nå vil vi bruke denne tilnærmingen til forrige kode. Alle varene vises på samme måte av løkken ved å forbli innenfor rekkevidden av matrisen. Når det gjelder det 7. indekselementet, skriver du denne uttalelsen i forsøksblokken.

Prøv
Konsoll.WritLine (arr [7]);

Etter å ha erklært prøvekroppen, vil vi bruke fangstblokken. Denne blokken er hoveddelen for å unngå unntaket. Den håndterer feilen ved å vise feilmeldingen og samtidig utføre programmet. Den viste meldingen er objektets egenskap som tilhører IndexoutOfRangeException Type -feilen.

Å fange
Konsoll.WritLine ("melding", e.beskjed);

Denne meldingen vil fungere gjennom objektet; Den ene meldingen er det vi har brukt, mens objektet viser den andre.

Du kan se den resulterende verdien. Feilmeldingen vises gjennom prøvefangstblokkene.

Eksempel nr. 2

Det er ikke obligatorisk å alltid bruke et enkelt forsøk og en enkelt fangstblokk. Vi kan bruke mer enn en fangstblokk for en enkelt prøveblokk. I den skarpe unntakskoden brukes flere fangstblokker når brukeren er usikker på feiltypen. Brukeren er ikke klar over hvilken unntakstype som kan oppstå. Derfor bruker vi forskjellige fangstblokker for å håndtere enhver form for feil som vi kan møte.

Ved å bruke flere fangster eksisterer det en siste blokk. Denne delen av koden utføres uavhengig av om feilen oppstår.

Den enkle syntaksen til flere fangster er gitt nedenfor:

prøve

// hvilken som helst uttalelse
Fangst (obj)

// Handlerkode
Fangst (obj)

// Handlerkode
endelig

// Standardkode

I det gitte eksemplet vil vi vise verdiene inne i matrisen i den endelig blokken. Vurder kildekoden der en rekke 4 elementer er erklært. Inne i prøvekroppen har vi brukt til sløyfe for å hente hvert element i en matrise og bruke den gitte tilstanden.

Konsoll.WritLine (arr [i] / arr i +1]);

Inne. Etter prøvekroppen vil vi bruke en sekvens av fangstblokker for å nevne unntakene av forskjellige typer som kan oppstå i henhold til situasjonen.

Fangst (IndexoutOfRangeException E)

Den første blokken er for unntaket utenfor rekkevidden sammen med objektet. En melding med objektet vises.

Tilsvarende vil den andre fangstblokken være:

Fangst (DivideByzerexception E)

Dette unntaket vil oppstå hvis noe tall er delt med null.

Den tredje og den siste typen fangst er for parametrene som er skrevet i argumentet i overflødig verdi i stedet for området i variablene erklært.

Fangst (ArgumentOutOfRangeException E)

Ved å definere disse, vil du vite at fangsten vil bli utført og vise verdien.

Beveger seg mot den endelig blokken. Det vil bli utført om et unntak skjer eller ikke. Og en for loop inne i den vil vise verdiene til en matrise.

Vi har brukt divisjonstilstanden for å dele nummeret med antallet som er til stede ved siden av. Så hvis vi ser verdiene på den andre posisjonen og ved 1 indeks, er det “0”, så alt delt med 0 forårsaker et unntak.

Først er feilen definert, og deretter vil den endelige blokken vise alle verdiene.

Konklusjon

En unntakshåndteringsprosess omhandler å identifisere feil og deretter løse dem. Dette gjøres ved å bruke prøvefangstblokker i kildekoden. Koden du tviler på at det kan føre til at et unntak er skrevet i forsøket, og fangstblokken vil fjerne dette unntaket. For et enkelt forsøk brukes en enkelt fangst og flere fangster. Du kan bruke et hvilket som helst unntaksobjekt som du kan tro kan være nyttig for mulig unntak. Vi har implementert eksempler etter enkeltfangst og flere fangsttilnærminger.