Turinys:
Apibrėžimas - ką reiškia „Catch Block“?
Suėmimo blokas, C #, yra neprivalomas kodo blokas, kuris vykdomas, kai iškeliama išimtis.
Sugavimo blokas yra specifinė išskirtinio tvarkymo konstrukto dalis, įgyvendinama naudojant „pagauti“ raktinį žodį kartu su raktiniais žodžiais „pabandykite“ ir „pagaliau“ ir sudaro priemones struktūrizuotam išimčių tvarkymui įgyvendinti. Bandymo blokas apima apsaugotą kodą, kuris gali sukelti išimtį. Jis pridedamas pareiškimams, kuriuose aptariamos išskirtinės aplinkybės, ir siekiama atsigauti po tokių netikėtų sąlygų.
Sugavimo blokas yra išimčių tvarkymo priemonė. Jei jie nebus tvarkomi, dėl .NET vykdymo laiko visa programa gali būti nutraukta. Sugavimo blokas gali būti naudojamas tvarkant bet kurias ar konkrečias išimtis.
„Techopedia“ paaiškina „Catch Block“
Išimties tvarkymo modelis „Common Language Runtime“ (CLR) leidžia naudoti daugiau nei vieną gaudymo bloką, iš kurių kiekvienas yra skirtas konkrečiai išimčiai tvarkyti. Kai tik atsiranda išimtis, CLR ieško sugavimo bloko, kuris tvarko išimtį. Jei šiuo metu vykdomame metode nėra tokio bloko, CLR jo ieško metode, kuris paskatino dabartinį metodą iki skambučių kamino. Jei tame išimtyje visame kode nėra rasta atitikties sakinio, gijos vykdymas sustabdomas ir vartotojui parodomas nesutvarkytas išimties pranešimas.
Čia pateikiami keli patarimai, susiję su sugavimo bloko naudojimu:
- Išimties tipas turi būti nurodytas sugavimo bloke tik tada, kai bus nustatyta konkrečių neišvengiamų išimčių atsiradimo priežastis (pvz., Katastrofiškas sistemos gedimas, netinkamas API naudojimas ir pan.) Ir atkūrimas buvo įgyvendintas nepaliekant programos nenuoseklios ar negaliojanti būsena.
- Sugavimo blokas turėtų būti išdėstytas taip, kad prieš mažiau specifinius reikėtų pagauti konkretesnes išimtis.
- Sugavimo blokas be parametrų yra vadinamas „valgymo išimtimis“, nes tai gali panaikinti rimtas problemas, kurias sunku derinti.
- Sugavimo bloką galima centralizuoti taip, kad jis galėtų tvarkyti išimtį iš centrinės vietos.
- „Metimo“ sakinys gali būti naudojamas sugavimo bloke, kur tą patį išimties objektą, praleistą metant, galima pakartotinai perduoti pakartojant metimą.
- Kintamieji, deklaruoti bandymo bloke, negali būti naudojami už jo ribų.
- Kodas nebus atnaujintas atgal į bandymo bloką, kai vykdomas sugavimo blokas.
- Išbandymo išimties tvarkytojo kodą sugavimo bloke yra būtina norint išvengti programos pažeidimo.
- „Catch“ blokas neturėtų būti naudojamas valymo kodams.
- Sugavimo blokas be parametrų negali būti naudojamas tvarkant su bendrine kalbos sistema nesuderinamas išimtis (tas, kurios nėra išvestos iš „System.Exception“).
