typestar

try-except en Delphi

Tres cadenas pasan por StrToInt; una no es un número y se maneja en vez de tumbar el programa.

program TryExcept;
uses SysUtils;
procedure Report(const Raw: string);
var Minutes: Integer;
begin
  try
    Minutes := StrToInt(Raw);  // raises EConvertError on junk input
    WriteLn(Format('%-6s %3d min', [Raw, Minutes]));
  except
    on E: EConvertError do     // on-do names the class and the instance
      WriteLn(Format('%-6s skipped: %s', [Raw, E.Message]));
  end;
end;
begin
  Report('45');
  Report('4o');  // the handler runs, then the program carries on
  Report('12');
end.

Cómo funciona

  1. Minutes := StrToInt(Raw) lanza EConvertError cuando el texto no es un entero.
  2. on E: EConvertError do atrapa esa sola clase y vincula la instancia a E.
  3. Report('4o') imprime E.Message y las llamadas que siguen corren igual.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
460
Tokens
97
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 78 segundos.

Escribe este fragmento

Paso 2 de 3 en Excepciones; paso 23 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →