Как я могу сказать, нахожусь ли я в стопке исключения Delphi?

Я думаю, что необходимо протестировать все в "ядре" бизнес-логики. Метод set ответа метода get также, потому что они могли принять отрицательную величину или нулевое значение, которое Вы могли бы сделать не, хочет принять. Если у Вас есть время (всегда зависят Вашего босса), хорошо протестировать другую бизнес-логику и весь контроллер, которые звонят, они возражают (Вы медленно идете от модульного теста до интеграционного теста).

8
задан Zartog 12 September 2009 в 21:35
поделиться

3 ответа

Вы можете проверить, назначены ли ExceptObject или ExceptAddr. В исходнике VCL это делается для экзамена. в GIFImg.pas или jpeg.pas.

Следующий код должен вывести

ExceptObject <> nil
ExceptObject = nil

, и если вы удалите исключение, то, конечно,

ExceptObject = nil
ExceptObject = nil

  try
    try
      raise Exception.Create('Just an exception');
    finally
      if ExceptObject <> nil then
        WriteLn('ExceptObject <> nil')
      else
        WriteLn('ExceptObject = nil');
    end;
  except

  end;
  if ExceptObject <> nil then
    WriteLn('ExceptObject <> nil')
  else
    WriteLn('ExceptObject = nil');
18
ответ дан 5 December 2019 в 07:12
поделиться

Это своего рода взлом, но вы можете попробовать вызвать AcquireExceptionObject. Если вы находитесь в состоянии исключения, вы получите возвращаемое значение, в противном случае вы получите ноль.

(Если вы его получили, не забудьте потом вызвать ReleaseExceptionObject.)

3
ответ дан 5 December 2019 в 07:12
поделиться

AFAIK, это может быть достигнуто только с помощью вложенных операторов try:

Try
  Try
    ...
  Except
    ...
  End;
Finally
  ...
End
2
ответ дан 5 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: