ВУЗ:
Составители:
Рубрика:
18
участка, после завершения выполнения соответствующего участка программы
гарантируется истинность следующего утверждения – предиката в конце участ-
ка. Конечный предикат описывал постусловие программы.
Схема Флойда используется на практике, по крайней мере, программи-
стами, имеющими вкус к строгим методам доказательства. Утверждения стано-
вятся частью программного текста. Само доказательство может и не проводить-
ся: чаще всего у программиста есть уверенность в справедливости расставлен-
ных утверждений и убежденность, что при желании он мог бы провести и стро-
гое доказательство. В C# эта схема поддерживается тем, что классы Debug и
Trace имеют метод Assert, аргументом которого является утверждение. Что
происходит, когда вычисление достигает соответствующей точки и вызывается
метод Assert? Если истинно булево выражение в Assert, то вычисления продол-
жаются, не оказывая никакого влияния на нормальный ход вычислений. Если
оно ложно, то корректность вычислений под сомнением, их выполнение приос-
танавливается и появляется окно с уведомлением о произошедшем событии,
что показано на рис. 3.
Рис. 3. Нарушение утверждения Assert
В этой ситуации у программиста есть несколько возможностей:
– прервать выполнение, нажав кнопку «Прервать» (Abort);
– перейти в режим отладки «Повтор» (Retry);
– продолжить вычисления, проигнорировав уведомление, «Пропустить».
В последнем случае сообщение о возникшей ошибке будет послано всем
слушателям коллекции TraceListenerCollection.
Рассмотрим простой пример, демонстрирующий нарушение утвержде-
ния:
public void WriteToFile()
{
Stream myFile = new FileStream("TestFile.txt", FileMode.Create, FileAccess.Write);
TextWriterTraceListener myTextListener = new TextWriterTraceListener(myFile);
int y = Debug.Listeners.Add(myTextListener);
TextWriterTraceListener myWriter =
new TextWriterTraceListener(System.Console.Out);
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »