Innholdsfortegnelse:
Definisjon - Hva betyr Catch Block?
En fangstblokk, i C #, er en valgfri blokkkode som utføres når et unntak heves.
Fangstblokk er en spesifikk del av den eksepsjonelle håndteringskonstruksjonen, og implementeres ved bruk av "fangst" -nøkkelordet i kombinasjon med nøkkelord "prøve" og "endelig" og danner virkemidler for å implementere strukturert unntakshåndtering. En prøveblokk inkluderer den beskyttede koden som kan forårsake unntaket. Den inneholder uttalelser som omhandler eksepsjonelle omstendigheter og arbeider for å komme seg fra slike uventede forhold.
Fangstblokk danner midlene for å håndtere unntak. Hvis disse ikke håndteres, kan dette føre til avslutning av hele programmet innen .NET-kjøretid. En fangstblokk kan brukes til å håndtere noen eller spesifikke unntak.
Techopedia forklarer Catch Block
Unntakshåndteringsmodellen til Common Language Runtime (CLR) tillater mer enn en fangstblokk, som hver er designet for å håndtere et spesifikt unntak. Når et unntak oppstår, ser CLR etter fangstblokken som håndterer unntaket. Hvis den nåværende utførende metoden ikke inneholder en slik blokk, søker CLR etter den i metoden som kalte den gjeldende metoden opp anropsstabelen. Hvis det ikke finnes noen samsvarsklausul for det unntaket i hele koden, blir utførelsen av tråden stoppet, og en ubehandlet unntaksmelding vises til brukeren.
Følgende er noen tips relatert til bruken av en fangstblokk:
- Unntakstypen må spesifiseres til fangstblokken bare etter at årsaken bak forekomsten av spesifikke unpreventable unntak (som katastrofalsystemfeil, API-misbruk osv.) Er bestemt og utvinning er implementert uten å forlate applikasjonen i et inkonsekvent ugyldig tilstand.
- Fangstblokken skal plasseres slik at de mer spesifikke unntakene må fanges før de mindre spesifikke.
- Fangstblokk uten parametere blir referert til som "spise unntak" fordi dette kan undertrykke alvorlige problemer som er vanskelige å feilsøke.
- Fangstblokk kan sentraliseres slik at den kan håndtere unntaket fra et sentralt sted.
- "Kast" -utsagnet kan brukes i fangstblokk som det samme unntaksobjektet som er gitt i kast kan passeres igjen mens du trekker om.
- Variabler som er deklarert i en prøveblokk, kan ikke brukes utenfor den.
- Koden vil ikke gjenoppta tilbake til prøveblokken etter at fangstblokken er blitt utført.
- Testing av unntakshåndtererkode i fangstblokk er viktig for å unngå å bryte applikasjonen.
- Fangstblokk skal ikke brukes til oppryddingskode.
- Fangstblokk uten parametere kan ikke brukes til å håndtere ikke-vanlige språksystemkompatible unntak (de som ikke er avledet fra System.Exception).
