Tratarea erorilor

În lumea dezvoltării software-ului, întâlnirea cu erori este inevitabilă. Din acest motiv, Rust include diverse mecanisme pentru a aborda situațiile în care lucrurile nu funcționează conform așteptărilor. Rust te forțează adesea să recunoști posibilitatea apariției unei erori și să iei măsuri corespunzătoare înainte ca codul să fie compilat. Această abordare îmbunătățește fiabilitatea programului tău, asigurându-te că vei identifica și gestiona erorile în mod adecvat înainte ca software-ul să ajungă în mediul de producție.

Rust clasifică erorile în două categorii principale: erori recuperabile și irecuperabile. În cazul unei erori recuperabile, cum ar fi "fișier negăsit", de obicei, dorim să informăm utilizatorul și să încercăm din nou acțiunea. Pe de altă parte, erorile irecuperabile indică prezența unor bug-uri, ca de exemplu o tentativă de acces la o zonă din afara limitelor unui array, caz în care este imperios să oprim programul de îndată.

Multe limbaje de programare nu fac distincție între aceste tipuri de erori și le abordează în același mod, adesea prin intermediul excepțiilor. Rust nu utilizează excepții. În schimb, oferă tipul Result<T, E> pentru gestionarea erorilor recuperabile și macro-ul panic! pentru situațiile irecuperabile, când execuția programului trebuie oprită de urgență. În acest capitol, vom începe prin a discuta folosirea panic! și apoi ne vom concentra pe întoarcerea valorilor de tip Result<T, E>. De asemenea, vom lua în considerare când este potrivit să recuperăm după o eroare și când este mai bine să întrerupem execuția.