Riješeno: probaj/uhvati

Posljednje ažuriranje: 09/19/2023

Try and catch blokovi su osnovne komponente rukovanja greškama u većini modernih programskih jezika, uključujući MATLAB. Njihova upotreba je ključna u sprečavanju kritičnih kvarova i poboljšanju korisničkog iskustva jer omogućavaju programeru da preduzme potrebne radnje kada dođe do greške.

Mehanizam try/catch radi tako što postavlja određene dijelove koda koji će se pratiti zbog grešaka ('try') i radnje koje treba izvršiti ako se greška otkrije ('catch').

Sada, zaronimo u glavnu temu sa rješenjem za uobičajeni problem.

Neočekivani unos u MATLAB funkciji

Čest problem u MATLAB-u je rukovanje neočekivanim unosom u funkciji. Bez pravilnog rukovanja greškama, to postaje problem jer može uzrokovati potpuni neuspjeh funkcije i rušenje programa. Upravo tu pokušaj/uhvat može biti spas.

function res = handledFunction(input)
  try
    % Potentially problematic code
    res = sqrt(input);
  catch ME
    % Handle the exception
    disp('An error occurred while calculating the square root.')
    disp(getReport(ME, 'basic'))
  end
end

Korak po korak, objašnjenje koda

Funkcija `handledFunction` je dizajnirana za izračunavanje kvadratnog korijena svog ulaza. Međutim, ako imamo ulaz koji ne dozvoljava izračunavanje kvadratnog korijena (poput negativnog broja), MATLAB bi obično izbacio grešku i zaustavio se.

  • Prvo, stavljamo kod koji potencijalno može izazvati grešku unutar a pokušajte blokirati. Ako se kod uspješno izvrši, blok catch se preskače.
  • Ako se greška dogodi unutar bloka try, programska kontrola se prosljeđuje na catch block, preskačući bilo koji drugi kod u bloku try. Blok catch je dizajniran da graciozno rukuje greškom, umjesto da zaustavlja cjelokupno izvršavanje programa. Informacijama o grešci se može pristupiti preko navedene varijable, u ovom slučaju, `ME`.
  • Konačno, `getReport(ME, 'basic')` pruža kratak izvještaj o grešci koja se dogodila. Ovo može biti ključno za otklanjanje grešaka ili za prikazivanje značajne poruke o grešci krajnjem korisniku.

Situacije, biblioteke i funkcije slične

Struktura try/catch nije ograničena na funkcije. Može se koristiti bilo gdje u kodu gdje može doći do greške. Smisleno rukovanje greškama može poboljšati robusnost programa, pružajući alternativna rješenja ili ispravno oslobađanje resursa nakon što je došlo do greške.

Druga slična MATLAB funkcija koja se može koristiti za rukovanje greškama je `error`. Omogućava vam da kreirate prilagođene poruke o grešci i dobro radi sa blokovima try/catch.

Nadalje, klasa MException u MATLAB-u pruža naprednije karakteristike za hvatanje i rukovanje greškama. Možete kreirati objekte MException, baciti ih i uhvatiti unutar bloka try/catch.

Rukovanje greškama je ključni deo programiranja i svi programeri bi trebalo da budu upoznati sa konceptima i alatima dostupnim na njihovom željenom jeziku kako bi efikasno postupali sa greškama. Bilo kroz upotrebu try/catch u MATLAB-u ili sličnih konstrukcija na drugim jezicima, osiguravanje da vaš program može podnijeti neočekivani unos ili greške je ključni dio izrade robusnog, otpornog koda.

Slični postovi: