Generell ist es nervig, wenn Entwickler Code schreiben bei dem durch 0 dividiert wird und sie das Problem ignorieren, weil "man ja das Exception-Handling deaktivieren kann". Vermutlich ist es in C default-mäßig nicht aktiv - ich meine mal gelesen zu haben, dass in C eine Division durch 0 zu undefiniertem Verhalten führt.
Genau da habe ich so ein Klassiker,  da würde überhaupt nichts passieren, wen cnt 0 wäre. Und dadurch w undefiniert wäre.
Code: Alles auswählen
uses
  crt;
  procedure Print(y,cnt: integer);
  var
    w, i: integer;
  begin
    w := 80 div cnt;
    for i := 0 to cnt - 1 do begin
      GotoXY(w * i + 1, y);
      WriteLn('X');
    end;
  end;
begin
  Print(4, 10);
  Print(5, 5);
  Print(6, 4);
  Print(7, 0); // runtime error 200
end.
Generell ist es nervig, wenn Entwickler Code schreiben bei dem durch 0 dividiert wird und sie das Problem ignorieren, weil "man ja das Exception-Handling deaktivieren kann". Vermutlich ist es in C default-mäßig nicht aktiv - ich meine mal gelesen zu haben, dass in C eine Division durch 0 zu undefiniertem Verhalten führt.
Genau in C ist es deaktiviert, ansonsten würde GTK nicht ohne SetExceptionMask laufen.
Ich habe gerade noch etwas festgestellt,  bei die xlmlib kommt eine ganz andere Fehlermeldung als bei meinem obigen Beispiel 
Code: Alles auswählen
An unhandled exception occurred at $000070F9A6CF7D8B:
EInvalidOp: Invalid floating point operation