Indholdsfortegnelse:
Definition - Hvad betyder Catch Block?
En fangstblok i C # er en valgfri blok af kode, der udføres, når en undtagelse hæves.
Fangstblok er en specifik del af den ekstraordinære håndteringskonstruktion og implementeres ved hjælp af "fangst" -søgeordet i kombination med nøgleord "prøv" og "endelig" og danner midlerne til at implementere struktureret undtagelseshåndtering. En prøveblok inkluderer den beskyttede kode, der kan forårsage undtagelsen. Det indeholder udsagn, der omhandler ekstraordinære omstændigheder og arbejder på at komme sig efter sådanne uventede forhold.
Fangstblok danner midlerne til at håndtere undtagelser. Hvis disse ikke håndteres, kan dette føre til afslutning af hele programmet inden .NET-kørselstid. En fangstblok kan bruges til at håndtere enhver eller specifikke undtagelser.
Techopedia forklarer Catch Block
Undtagelseshåndteringsmodellen for Common Language Runtime (CLR) tillader mere end en fangstblok, der hver især er designet til at håndtere en bestemt undtagelse. Hver gang en undtagelse finder sted, ser CLR efter fangstblokken, der håndterer undtagelsen. Hvis den aktuelt eksekverende metode ikke indeholder en sådan blok, søger CLR efter den i metoden, der kaldte den aktuelle metode op opkaldsstakken. Hvis der ikke findes nogen matchende klausul for denne undtagelse i hele koden, stoppes udførelsen af tråd, og en uhåndteret undtagelsesmeddelelse vises for brugeren.
Følgende er et par tip relateret til brugen af en fangstblok:
- Undtagelsestypen skal kun specificeres i fangstblokken, efter at årsagen bag forekomsten af specifikke upåvirkelige undtagelser (som katastrofalt systemsvigt, API-misbrug osv.) Er blevet fastlagt, og gendannelse er implementeret uden at efterlade applikationen i en inkonsekvent eller ugyldig tilstand.
- Fangstblokken skal placeres således, at de mere specifikke undtagelser skal fanges før de mindre specifikke.
- Fangstblok uden parametre kaldes "spiseundtagelser", fordi dette kan undertrykke alvorlige problemer, der er vanskelige at fejlsøge.
- Fangstblok kan centraliseres, så den kan håndtere undtagelsen fra en central placering.
- "Kast" -angivelsen kan bruges i fangstblokken, for hvilken det samme undtagelsesobjekt, der er passeret i kastet, kan passeres igen, mens der trækkes om.
- Variabler, der er erklæret inden for en prøveblok, kan ikke bruges uden for den.
- Koden genoptages ikke igen til prøveblokken, når fangstblokken er blevet udført.
- Test af undtagelseshåndtererkoden i fangstblokken er vigtig for at undgå brud på applikationen.
- Fangstblok bør ikke bruges til oprydningskode.
- Fangstblok uden parametre kan ikke bruges til at håndtere ikke-almindelige sprog Systemkompatible undtagelser (dem, der ikke er afledt af System.Exception).
