ați văzut vreodată un accident de aplicație? Dacă da, știți cât de frustrant poate fi și dacă sunteți programator, probabil că veți blestema dezvoltatorul pentru că nu a introdus mecanismul corect de manipulare a erorilor în el! Și exact despre asta este vorba în această piesă. Manipularea erorilor este o parte integrantă a codului unei aplicații, deoarece captează erori neprevăzute și se asigură că aplicația este terminată în siguranță., Ca și în majoritatea limbajelor de programare, PowerShell acceptă, de asemenea, un mecanism de gestionare a erorilor numit try-catch, dar înainte de aceasta, să învățăm puțin despre gestionarea erorilor în PowerShell.
De ce aveți nevoie de eroare de manipulare?
o întrebare destul de de bază pe care majoritatea dintre voi o cunoașteți deja. Totuși, să o atingem pe scurt pentru a reitera câteva puncte importante.
manipularea erorilor ajută în următoarele moduri.
- previne crashing o aplicație.
- face ușor pentru utilizator să știe că ceva nu este în regulă și că ar trebui să contacteze echipa de asistență.,
- oferă detalii despre eroare și cauzele posibile ale acesteia.
- ajută la analiza ulterioară și la remedierea problemelor.
- oferă opțiunea de a personaliza mesajele de eroare trimise utilizatorilor finali.
- îl face ușor pentru a menține codul.
- programul dvs. ar putea continua să funcționeze chiar și după eroare, în funcție de eroare și de codul dvs.
- considerat a fi o bună practică de programare.acum că am atins beneficiile gestionării erorilor, să vedem cum poate fi implementată în PowerShell.,
manipularea erorilor în PowerShell
în linii mari, există două tipuri de erori și acestea sunt: erori de terminare și non-terminare.după cum sugerează și numele, erorile de terminare sunt cele care sunt critice și termină programul brusc, în timp ce erorile de terminare permit programului să ruleze, dar pot da rezultate greșite sau uneori, chiar rezultate drastice. Acum, dacă vă întrebați, Erorile care nu se termină sunt potențial mai periculoase decât erorile de terminare, deoarece nu știți ce aspecte pot fi modificate.,unele erori de terminare posibile sunt în afara erorilor de memorie și sintaxă, în timp ce cea mai mare parte a erorilor în logica de programare și erorile neașteptate se încadrează în categoria non-terminare.ca programator, puteți spune PowerShell pentru a trata Erorile non-terminare ca erori de terminare, astfel încât programul se oprește în cazul în care se confruntă cu acea eroare special. Această modificare vă ajută să gestionați eroarea folosind blocul PowerShell try-catch, deoarece, în mod implicit, Erorile care nu se termină nu pot fi gestionate cu blocul try-catch.,
pentru a converti Erorile care nu se termină în erori de terminare, utilizați un parametru numit ErrorAction. Fiecare cmdlet acceptă acest parametru și este conceput pentru a spune programului ce acțiune ar trebui să ia atunci când întâmpină o eroare. ErrorAction vine cu următoarele opțiuni
- Stop: acest lucru oprește programul și îl tratează ca o eroare de terminare.
- continuare: permite programului să continue și eroarea este afișată.
- SilentlyContinue: programul rulează și nu sunt afișate erori.
- Ignore: ignoră eroarea și continuă.,
- întreba: afișează eroarea și verifică dacă ar trebui să continue.
- suspendare: aceasta poate fi utilizată într-un flux de lucru Windows PowerShell. Limitarea este că nu poate suspenda funcțiile avansate.
sintaxa pentru ErrorAction este:
$variable = Get:content \user.txt:ErrorAction Stop
Această comandă schimbă un non-încheiere de eroare într-o încheiere de unul, așa că te poți descurca.după ce aveți o eroare de terminare sau ați convertit una care nu se termină într-o eroare de terminare, o puteți gestiona folosind PowerShell try-catch block.,
generic sintaxa este:
În acest exemplu, datele din fișierul este stocat în $variabilă și dacă există o eroare, codul devine la bloc catch și afișează mesajul. Exemplul de mai sus este unul de bază, conceput pentru a vă oferi o idee despre sintaxă și utilizare. În lumea reală, totuși, veți folosi acest bloc PowerShell try-catch pentru a obține informații despre eroare și pentru a lua măsuri în consecință.,
aplicații practice ale blocului PowerShell try-catch
puteți accesa înregistrarea erorilor din interiorul blocului catch. De fapt, mesajul de eroare este stocat în variabila curentă $_. Puteți face orice cu această înregistrare de eroare, cum ar fi analiza erorii, afișarea unui avertisment și multe altele. Un atribut puternic al variabilei curente este excepția, deoarece ideea este de a afla mai multe despre evenimentele neașteptate care au determinat oprirea programului. De asemenea, excepție în sine vine cu multe atribute, cum ar fi ItemName, GetType, mesaj, etc.,,
de exemplu:
try{$variable = Get:content \user.txt:ErrorAction Stop}catch{write:output $_Exception.Message}
acum că elementele de bază sunt clare, să trecem la partea avansată.puteți utiliza blocul de captură pentru a prinde anumite excepții, cu condiția să le cunoașteți sau să le anticipați. De exemplu, să presupunem că doriți să fie afișat un mesaj specific dacă fișierul nu este găsit și alte mesaje pentru alte excepții, codul dvs. ar trebui să arate astfel:
câteva puncte de luat în considerare atunci când utilizați try-catch
rețineți următoarele puncte în timp ce utilizați blocul PowerShell try-catch.,
- nu trebuie să existe niciun cod între bretelele de terminare ale blocului try și comanda catch. Cu alte cuvinte, cuvântul „captură” ar trebui să fie imediat în linia următoare după brațele de închidere ale blocului de încercare
- acest bloc de încercare PowerShell este cel mai util pentru a gestiona erorile pe care le anticipați că se pot întâmpla în program.
- blocul de captură va prinde orice excepție aruncată în interiorul blocului de încercare, indiferent de originea sa.
- comanda PowerShell try-catch este o alternativă convenabilă la mai multe declarații if.,
- blocul de încercare poate fi urmat de orice număr de blocuri de captură, dar acestea ar trebui să fie consecutive fără niciun alt cod între ele.
în cele din urmă bloc
există ceva numit un bloc în cele din urmă pe care îl puteți utiliza cu try-catch. Acesta este unul opțional și nu trebuie să fie utilizat în orice moment. Acest bloc va executa codul menționat în interiorul acestuia, indiferent dacă a existat o eroare sau nu. Acest bloc ar trebui să vină imediat după bretele de închidere a ultimului bloc de captură.,în exemplul de mai sus, o intrare va fi anexată în fișierul jurnal de fiecare dată când se face o încercare de a accesa fișierul, indiferent dacă fișierul a fost găsit sau nu.manipularea erorilor este o parte importantă a oricărui program, deoarece împiedică blocarea aplicației și vă ajută să analizați cauza posibilă a erorii. PowerShell try-catch block este o modalitate puternică de a capta erorile de terminare, astfel încât să le puteți gestiona în siguranță, fără a provoca un accident., Aceasta ajută cu analiza detaliată și o înțelegere a problemei, de asemenea. Din aceste motive, este un must-have în scripturile PowerShell.
Leave a Reply