Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1.4. Programarea în MATLAB 45<br />
instructiune<br />
end<br />
Se execută instruct¸iunile dintre try s¸i catch. Dacă apare o eroare se execută<br />
instruct¸iunile dintre catch s¸i end. Această parte trebuie să trateze eroare într-un<br />
anumit mod. Blocurile try-catch se pot imbrica.<br />
În MATLAB 7 funct¸ia error se poate apela cu un mesaj de eroare cu format (ca<br />
în sprintf), după cum ne arată exemplul următor:<br />
error(’File %s not found\n’, filename)<br />
sau cu un identificator de mesaj<br />
error(’MATLAB:noSuchFile’, ’File %s not found\n’,...<br />
filename)<br />
Sursa ultimei erori se poate identifica cu lasterr, care returnează ultimul mesaj<br />
de eroare sau cu lasterror, care returnează o structură ce cont¸ine mesajul de<br />
eroare s¸i identificatorul acestuia.<br />
Exemplul următor determină cauza erorii la înmult¸irea a două matrice utilizând<br />
try-catch s¸i lasterr:<br />
function matrixMultiply2(A, B)<br />
try<br />
A * B<br />
catch<br />
errmsg = lasterr;<br />
if(strfind(errmsg, ’Inner matrix dimensions’))<br />
disp(’** Wrong dimensions for matrix multiply’)<br />
else<br />
if(strfind(errmsg, ’not defined for values of class’))<br />
disp(’** Both arguments must be double matrices’)<br />
end<br />
end<br />
end<br />
Dacă dimensiunea matricelor este ilegală, se afis¸ază primul mesaj:<br />
>> A = [1 2 3; 6 7 2; 0 1 5];<br />
>> B = [9 5 6; 0 4 9];<br />
>> matrixMultiply2(A, B)<br />
** Wrong dimensions for matrix multiply<br />
iar dacă funct¸ia este apelată cu un argument tablou de celule, al doilea mesaj:<br />
>> C = {9 5 6; 0 4 9};<br />
>> matrixMultiply2(A, C)<br />
** Both arguments must be double matrices<br />
Pentru detalii a se vedea doc try s¸i [13].