Возможно, вы предусмотрели не все исключительные ситуации? Мне удалось получить только сообщение Invalid floating point operation, когда a=b=0. При желании можете на все "неизвестные" исключения поставить одно сообщение: "Произошла неизвестная ошибка!" X)
Код:
function LinearEquation(a: real; b: real): real;
begin
try
Result := -(b / a);
except
on EZeroDivide do
begin
MessageBeep(MB_ICONERROR);
MessageDlg('Коэффициент а не должен равняться нулю!', mtError, [mbOK], 0);
Exit;
end;
on EConvertError do
begin
MessageBeep(MB_ICONERROR);
MessageDlg('Введите коэффициенты!', mtError, [mbOK], 0);
Exit;
end;
else
MessageDlg('Unknown error!', mtError, [mbOK], 0);
end;
end;