En aquest tema, aprendrem com depurar el codi i gestionar errors en MATLAB. La depuració és una part essencial del desenvolupament de programari, ja que ens permet identificar i corregir errors en el nostre codi. MATLAB ofereix diverses eines i tècniques per ajudar-nos en aquest procés.

Continguts

Introducció a la Depuració

La depuració és el procés de trobar i corregir errors en el codi. Els errors poden ser de diversos tipus, com ara errors de sintaxi, errors lògics o errors d'execució. MATLAB proporciona eines per ajudar a identificar i corregir aquests errors.

Tipus d'Errors

  • Errors de Sintaxi: Aquests errors es produeixen quan el codi no segueix les regles de la sintaxi de MATLAB.
  • Errors Lògics: Aquests errors es produeixen quan el codi s'executa sense problemes, però no produeix els resultats esperats.
  • Errors d'Execució: Aquests errors es produeixen durant l'execució del codi, sovint a causa de condicions inesperades.

Punts de Ruptura (Breakpoints)

Els punts de ruptura són una eina essencial per a la depuració. Permeten aturar l'execució del codi en un punt específic per inspeccionar l'estat del programa.

Com Afegir Punts de Ruptura

  1. Des de l'Editor: Feu clic a la marge esquerra de la línia de codi on voleu afegir un punt de ruptura.
  2. Comanda dbstop: Podeu utilitzar la comanda dbstop per afegir punts de ruptura des de la línia de comandes.
dbstop in myscript at 10  % Afegir un punt de ruptura a la línia 10 del fitxer myscript.m

Comandes Relacionades

  • dbclear: Elimina punts de ruptura.
  • dbcont: Continua l'execució després d'un punt de ruptura.
  • dbquit: Surt del mode de depuració.

Eines de Depuració

MATLAB ofereix diverses eines per ajudar a depurar el codi.

Inspecció de Variables

Podeu inspeccionar el valor de les variables en qualsevol moment durant la depuració utilitzant la finestra de l'espai de treball o la línia de comandes.

Comandes de Depuració

  • dbstep: Executa la següent línia de codi.
  • dbup i dbdown: Navega per la pila de crides.

Exemple Pràctic

function result = myFunction(x)
    y = x + 1;
    z = y * 2;
    result = z / 0;  % Això produirà un error d'execució
end

Afegiu un punt de ruptura a la línia y = x + 1; i executeu la funció myFunction(5). Utilitzeu les eines de depuració per inspeccionar les variables y i z.

Gestió d'Errors

La gestió d'errors és crucial per fer que el codi sigui robust i fiable. MATLAB proporciona estructures per capturar i gestionar errors.

Estructura try-catch

L'estructura try-catch permet capturar errors i executar codi alternatiu.

try
    result = myFunction(5);
catch ME
    disp('S'ha produït un error:');
    disp(ME.message);
end

Exemple Pràctic

function result = safeDivision(a, b)
    try
        result = a / b;
    catch ME
        disp('Error: Divisió per zero.');
        result = NaN;
    end
end

Exercicis Pràctics

Exercici 1: Depuració Bàsica

  1. Creeu una funció que calculi la suma dels elements d'un vector.
  2. Afegiu un error lògic intencionat (per exemple, multipliqueu en lloc de sumar).
  3. Utilitzeu punts de ruptura i les eines de depuració per identificar i corregir l'error.

Exercici 2: Gestió d'Errors

  1. Creeu una funció que llegeixi un fitxer de text i retorni el seu contingut.
  2. Utilitzeu l'estructura try-catch per gestionar errors si el fitxer no existeix.
function content = readFile(filename)
    try
        fid = fopen(filename, 'r');
        content = fread(fid, '*char')';
        fclose(fid);
    catch ME
        disp('Error: No s''ha pogut obrir el fitxer.');
        content = '';
    end
end

Conclusió

En aquesta secció, hem après com utilitzar les eines de depuració de MATLAB per identificar i corregir errors en el nostre codi. També hem vist com gestionar errors utilitzant l'estructura try-catch. Aquestes habilitats són essencials per desenvolupar codi robust i fiable. En el següent mòdul, explorarem tècniques avançades de visualització de dades.

© Copyright 2024. Tots els drets reservats