![]() |
|
#1
|
|||
|
|||
![]() помогите, плииз... добавил блок try...except, а при проверке программы все равно выдает исключение. почему?
Код:
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; end; end; |
#2
|
||||
|
||||
![]() Если проверяете в отладчике, то так и должно быть если только в настройках не отключите опцию, но с этим отключением надо осторожнее быть.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() большое спасибо! запустил приложение не из Delphi и все нормально
|
#4
|
|||
|
|||
![]() Возможно, вы предусмотрели не все исключительные ситуации? Мне удалось получить только сообщение 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; |
#5
|
|||
|
|||
![]() спасибо, недочет исправлен
|