ПОНЯТНО О Visual Basic NET (том 3)




Обработка ошибок Исключения Оператор Try


Здесь нас интересуют только исключения, то есть ошибки выполнения (см. 1.3.8).

Суть проблемы. Многие функции, процедуры и вообще операторы, которыми вы пользуетесь в VB, вовсе не обязаны при любых обстоятельствах успешно завершать свою работу. Например, пусть вы запустили процедуру, в которой встречается оператор копирования файла 13.txt  из папки c:\temp в папку c:\temp\222:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim a = 3

        File.Copy("c:\temp\13.txt", "c:\temp\222\13.txt")

        MsgBox("Ура! Файл скопирован!")

        Dim b = 8

End Sub

но забыли предварительно создать файл 13.txt в папке c:\temp. Метод File.Copy не может выполнить свою работу, VB выдает сообщение об ошибке и работа приложения прерывается. Говорят, что было выброшено исключение. Не в том смысле, что выброшено в мусорное ведро, а в том смысле, как выбрасывают лозунги, флаги, то есть выброшено из небытия в зону нашего внимания. Рядовой пользователь, работающий с вашим приложением, окажется в затруднительном положении. Он совсем не обязан разбираться в английском тексте сообщения, и если он даже догадается, в чем дело, и создаст нужный файл, все равно приложение надо будет запускать заново, так как оно прервано. Вы, как программист, должны учитывать, что с вашим приложением будут работать рядовые пользователи, причем даже не очень квалифицированные. Поэтому при программировании вы должны предугадать все возможные неправильные действия пользователя (за исключением выбрасывания компьютера в форточку), чтобы при таких действиях приложение, во-первых, не прерывалось, а во-вторых – выдавало вразумительное сообщение на русском языке и советы по выходу из затруднительной ситуации.

Кое-что в этом направлении мы уже делали в 7.7, предохраняя калькулятор от арифметических действий над текстом и от деления на ноль. Но там мы именно предохраняли проект от ошибок, не допускали их возникновения, не разрешали арифметических действий над текстом и деления на ноль. Здесь же мы будем рассматривать ситуации, когда о недопущении ошибки мы не смогли позаботиться, ошибка поэтому все же произошла и теперь нам нужно ее «обезвредить».




Содержание  Назад  Вперед