Kazalo:
Opredelitev - Kaj pomeni blok ulova?
Blok ulova, v C #, je izbirni blok kode, ki se izvrši, kadar je postavljena izjema.
Blok ulova je poseben del izjemnega konstrukta ravnanja in se izvaja s pomočjo ključne besede "catch" v kombinaciji s ključnimi besedami "poskusi" in "končno" in tvori sredstva za izvajanje strukturiranega ravnanja z izjemami. Poskusni blok vključuje zaščiteno kodo, ki lahko povzroči izjemo. Obsega izjave, ki obravnavajo izjemne okoliščine, in si prizadeva, da si opomore pred takimi nepričakovanimi pogoji.
Blok ulova tvori sredstva za obravnavanje izjem. Če se teh ne obravnava, lahko to do konca delovanja .NET ustavi celoten program. Blok ulova se lahko uporablja za ravnanje s kakršnimi koli ali posebnimi izjemami.
Techopedia razlaga Catch Block
Model ravnanja z izjemami skupnega jezika izvajanja (CLR) omogoča več blokov ulova, od katerih je vsak zasnovan za posebno izjemo. Kadar koli pride do izjeme, CLR poišče blok ulova, ki obravnava izjemo. Če trenutno izvršen način ne vsebuje takega bloka, ga CLR poišče v metodi, ki je poklicala trenutno metodo navzgor. Če v celotni kodi ni nobene ustrezne klavzule za to izjemo, se izvedba niti ustavi in uporabniku se prikaže neobdelano sporočilo o izjemi.
Sledi nekaj nasvetov v zvezi z uporabo bloka ulova:
- Vrsta izjeme mora biti določena v bloku ulova šele potem, ko je določen razlog za nastanek posebnih izjemnih izjem (npr. Katastrofalne okvare sistema, zloraba API-ja itd.) In obnovitev izvedena, ne da bi aplikacija ostala neskladna oz. neveljavno stanje.
- Blok ulova mora biti nameščen tako, da je treba zajeti manj specifične izjeme pred manj specifičnimi.
- Blok ulova brez parametrov označujemo kot "prehranjevalne izjeme", ker lahko to odpravi resne težave, ki jih je težko odpraviti.
- Blok ulova je lahko centraliziran, tako da lahko obravnava izjemo z osrednje lokacije.
- Stavek "metanje" je mogoče uporabiti znotraj bloka ulova, za katerega se lahko med ponovnim metanjem znova prenese isti predmet izjeme, ki je bil prenesen v metanje.
- Spremenljivk, prijavljenih v poskusnem bloku, ni mogoče uporabiti zunaj njega.
- Po izvedbi bloka ulova se koda ne bo ponovno vrnila v poskusni blok.
- Testiranje kode za obdelavo izjem v bloku ulova je ključnega pomena, da se prepreči prekinitev aplikacije.
- Bloka ulova se ne sme uporabljati za kodo čiščenja.
- Bloka ulova brez parametrov ni mogoče uporabiti za ravnanje z izjemami, ki niso skladne s sistemskim jezikom (tiste, ki niso izpeljane iz System.Exception).