Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
1

Живучесть проги

14.07.2012, 10:00. Показов 3744. Ответов 45
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет...
Вопросов несколько:
1)Допустим у меня должна выполниться процедура (к примеру отправка смс через модем), а он не обнаруживается. И прога встает и выкатывает мне ошибку. С помощью чего мне можно сделать так чтобы если процедура данная не выполняется, то выполняется другая. Слышал что-то про команду TRY, но как работает не знаю???

2) Теперь если я знаю конкретную ошибку кот мне выдает прога, как мне ее пропустить чтобы прога дальше пошла, ну или выполнить другое действие???

3) Еще слышал, что если разбивать прогу на ПОТОКИ, то живучесть ее повышается, это как поясните???
...заранее благодарен...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2012, 10:00
Ответы с готовыми решениями:

Живучесть SSD
интересует тема живучести SSD дисков, в сервере. на одном стоит система, на другом MSSQL базы....

Atmega8 USART - живучесть
уважаемые, возник вопрос собственно по живучести USORTa в восьмой атмеге. как его можно сжечь? или...

Проверить объект в std::bind на живучесть
#include <iostream> #include <string> #include <functional> using namespace std; typedef...

Установил фотошоп, вместо проги установились другие проги (игры онлайн,браузеры,рекламы и т.д.)
Здравствуйте, уважаемые программисты или форумчане! Скачал и установил с одного сайта фотошоп, а во...

45
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,734
15.07.2012, 18:32 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Dragokas Посмотреть сообщение
эта ошибка исходит из внешней библиотеки
вот это
Visual Basic
1
2
 Set ObjectWord = GetObject(, "Word.Application")
    Set ObjectOpenWord = ObjectWord.ActiveDocument
и есть внешняя библиотека?
0
locm
15.07.2012, 19:56
  #22

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Просто ты не знаешь VB
Да не знаю, но знаю WinAPI. Функция CreateFile() возвращает хэндл открытого файла или -1 если не удалось открыть.
В VB ведь можно вызывать WinAPI функции? Тогда в чем проблема?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А я знаю достаточно хорошо, и PureBasic, на который ты намекаешь
Я намекаю на нормальный ЯП и это не только PureBasic, но и Дельфи, C++ и др. с которыми я имел дело. В них нет таких проблем.
Я думал что VB тоже нормальный ЯП но оказалось что это не так, точнее его функции и операторы оставляют желать лучшего и VB не подходит для создания серьезных программ.
Может это как раз из-за VB профессиональные программисты хаят бейсик, намекая что он не подходит для создания стабильно работающих программ?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Так есть ли смысл тебе рассуждать в этой теме?
Есть!
Нужно уберечь потенциальных программистов от быдлокодинга. Из того что я понял из ваших слов, VB категорически не пододит для первого ЯП, т.к. велика вероятность стать быдлокодером!
Чему он учит? Тому что нужно очевидные вещи делать через одно место и не проверять возникновение ошибок?
Представляете что будет если человек перейдет на нормальный ЯП и тоже забьет на проверку ошибок? Потому что не обучен их проверять!
Грош - цена его программам, которые падают от дуновения ветерка!

0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
15.07.2012, 20:22 23
Поэтому VB и называют простым языком, что в нем есть такая возможность на все забивать (от ошибок до инициализации переменных).

Но я лично в своих прогах (которые для себя) никогда не использую:
Visual Basic
1
on error resume next
Вместо этого направляю ошибки на месейджбокс. Если такая возникает, программа не прерывается, не крешится, а мы видим причину ошибки по ее описанию.
И всегда использую
Visual Basic
1
option explicit
А что по поводу кода работы с файлом.
API, конечно можно, но нужно ли городить тучу кода, если есть встроенный функционал.
Предварительно проверить все возможные ошибки перед открытием файла тоже можно, но опять, нужно ли это делать, если ты пишешь в бейсике, что само собой подразумевает писать коротко и быстро и по-проще.

А предусматривать ли все возможные ситуации это уже на совести программиста.
0
6804 / 2831 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
15.07.2012, 21:46 24
Цитата Сообщение от locm Посмотреть сообщение
Может это как раз из-за VB профессиональные программисты хаят бейсик
Это где такие "профи" сидят и на PureBasic кодят? В нашем коллективе очень уважительно относятся. Да и привычнее как то в MS Ofice на VBA скрипты писать, а не PureBasic или других нормальных ЯП, с которыми ты дело имел
Цитата Сообщение от locm Посмотреть сообщение
Нужно уберечь потенциальных программистов от быдлокодинга.
Нужно научить их пользоваться всеми инструментами данного языка. А on error - это мощный инструмент, если использовать его правильно, как Dragokas например.
1
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
15.07.2012, 22:02 25
все ЯП для чего то создавлись и, естественно, имеют право быть
каждый вправе выбрать тот или иной язык исходя из своих возможностей
ну и от обл.применения.
мое мнение, быдлокод и неспользование или подмена возможностей языка - это как бы разные вещи
к примеру в аксесе конструкторы создают сплошь и рядом on error

из своего опыта: при определении ОДЗ ф-ций я не проверяю корни, логарифмы, знаменатели,...
для этого очень удобно (мне) использовать именно встоенный обработчик

да и потом уровень ыот этого быдлокодства зависит от уровня автора
наверное все через это идут
ну и в этом есть позитив, нужно знать как правильно и важно знать как неправильно
0
locm
16.07.2012, 00:50
  #26

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
Поэтому VB и называют простым языком, что в нем есть такая возможность на все забивать (от ошибок до инициализации переменных).
Забить на все можно в любом ЯП, а вот отсутствие нормальной обработки ошибок это ИМХО не простота, а недостаток ЯП.

Цитата Сообщение от Dragokas Посмотреть сообщение
Вместо этого направляю ошибки на месейджбокс. Если такая возникает, программа не прерывается, не крешится, а мы видим причину ошибки по ее описанию.
ИМХО так логичнее обрабатывать ошибки.
Visual Basic
1
2
3
4
5
6
7
if Open ("C:TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения
  Line Input #MyFile, S 'Считываем первую строку из файла TEST.TXT в переменную S
  Close #MyFile 'Закрываем файл 
 
Else
 ' Обработка ошибки открытия файла.
End If
Цитата Сообщение от Dragokas Посмотреть сообщение
API, конечно можно, но нужно ли городить тучу кода, если есть встроенный функционал.
Встроенный функционал как видим, не предоставляет всех требуемых возможностей. И почему тучу кода? Нужно всего пара функций, типа CreateFile(), ReadData(), WriteData(), CloseHandle().

Цитата Сообщение от Dragokas Посмотреть сообщение
но опять, нужно ли это делать, если ты пишешь в бейсике, что само собой подразумевает писать коротко и быстро и по-проще.
Но при этом нельзя забывать про стабильность работы программы!
Кому нужна программа, написанная на скорую руку, которая вылетает даже без видимых причин для этого?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Это где такие "профи" сидят и на PureBasic кодят?
Что вы заладили, PureBasic да, PureBasic? Какое он имеет отношение к этой теме?
Я имел в виду вообще программистов, а не только тех, кто пишет на PureBasic.
Возьмем к примеру Эдсгера Дейкстра. Вот что он написал про бейсик.
Цитата Сообщение от Эдсгера Дейкстра
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации
Теперь я понимаю из-за чего. Это из-за пренебрежительного отношения к программированию на бейсике и недостаткам некоторых диалектов бейсика, и VB входит в их число.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Да и привычнее как то в MS Ofice на VBA скрипты писать
Пишите на чем хотите, но не учите других быдлокодить!

0
Pro_grammer
16.07.2012, 06:31
  #27

Не по теме:

Цитата Сообщение от locm Посмотреть сообщение
Что вы заладили, PureBasic да, PureBasic?
Так ты же больше ни чего не знаешь, к сожалению, о чем же ещё с тобой говорить? Кстати, как я понял до версии 4.30 этот оператор (OnErrorResume) тоже был! И на ихнем форуме по PureBasic один из самых грамотных программистов форума был в шоке, когда его убрали :
Цитата Сообщение от Пётр
Я в PB4.30 не смог найти аналог функции OnErrorResume()
Они что вообще исключили эту замечательную функцию? Shocked Confused
Дальше он доказывал, как без него тяжело программировать:
Цитата Сообщение от Пётр
Так что это очень важные функции, с помощью которых можно полностью или частично восстановить работу программы после ошибки
И у него там учится программировать весь форум:(
Да и ты постоянно с того форума примеры выкладываешь... Так что кто учит быдлокодерству - это ещё вопрос.

0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,653
Записей в блоге: 13
16.07.2012, 07:40 28
Лучший ответ Сообщение было отмечено как решение

Решение

Некоторые итоги:

1) Обработка ошибок в VB достаточно удобна (On Error GoSub, On Error Goto, On Error Resume [next], объект Err), но в современных языках принята еще более удобная концепция (основанная на С++ - подходе - Try/Catch).

Впрочем, обе эти концепции (на мой взгляд), не решают главной проблемы: если ошибка все же пропущена (нет обработчика), то пользователю вываливается маловразумительное сообщение об ошибке (типа Error Code=9), ему совершенно непонятное. Но самое смешное в том, что оно и программисту непонятно. Где индекс вышел за границу? В какой процедуре?

А писать обработчики для всех ситуаций немыслимо. Это превращает программирование в мУку! Некоторый сервис представляет моя надстройка (см. приложенный файл). Там и подробная инструкция...

2) Дейкстра писал про ОЧЕНЬ старый бэйсик. Не надо передергивать. Современный бэйсик - структурный язык, не уступающий Паскалю.И современным бэйсик-программистам нет необходимости доказывать "неверблюдность".

3) Хороший язык тот, которым ты лучше всего владеешь. Хороший программист обязан знать несколько языков.
Вложения
Тип файла: zip debugerb.zip (111.6 Кб, 14 просмотров)
3
6804 / 2831 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
16.07.2012, 08:38 29
Цитата Сообщение от Catstail Посмотреть сообщение
в современных языках принята еще более удобная концепция (основанная на С++ - подходе - Try/Catch).
Да, есть в Бейсике начиная с VB.NET. В MSDN прямо рекомендуют использовать именно эту конструкцию, а on error оставлен для совместимости.
0
locm
16.07.2012, 10:37
  #30

Не по теме:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Так ты же больше ни чего не знаешь, к сожалению, о чем же ещё с тобой говорить?
С чего вы это взяли?
Если я в основном отвечаю в разделе форума по PureBasic, это еще не значит что я не знаю других ЯП.
Когда кончаются аргументы, не нужно переходить на личности. Будьте мужчиной, не опускайтесь до этого!

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Кстати, как я понял до версии 4.30 этот оператор (OnErrorResume) тоже был!
В этом разделе обсуждают VB.
Если так сильно хотите обсудить обработчик ошибок PB, то создайте тему в соответствующем разделе и обсудим.

0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.07.2012, 11:35 31
locm, Вы извините, но имхо, как бы немножко недоперелет
Вы косвенно уличили в бк уже 3 чел.,
почему я встряю так сказать., потому, что всех троих я очень хорошо знаю по форуму этому
и глубоко уважаю как знающих и воспитанных людей.(У них есть чему учится!)
из сего предложение, давайте останемся при своем мнении и прекратим вот это "не в тему"
0
locm
16.07.2012, 11:38
  #32

Не по теме:

Цитата Сообщение от gaw Посмотреть сообщение
Вы косвенно уличили в бк уже 3 чел
Я никого не уличал в быдлокодерстве.
А всего лишь попросил не учить других неправильному программированию. Живучесть проги

0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.07.2012, 12:02 33
ну вот о себе, первые мои попытки написать что то --- это сплошной бк это правда
вплоть до использования Goto для выхода из цикла
сегодня я так не делаю, но найдется человек который скажет, что
сегодняшний мой код тоже бк, и я ему буду благодарен, если напишет как надо

а вообще то тема интересная, но было бы еще интересней, если бы на конкретных примерах
тапа
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Command1_Click()
For i = 25 To 0 Step -1
If i = 0 Then GoTo 1
s = s + 1 / i
Next i
1
End Sub
Private Sub Command2_Click()
For i = 25 To 0 Step -1
If i <> 0 Then
s = s + 1 / i
End If
Next i
End Sub
 
Private Sub Command3_Click()
On Error GoTo err
For i = 25 To 0 Step -1
s = s + 1 / i
Next i
Exit Sub
err: MsgBox err.Description
End Sub
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
16.07.2012, 15:00 34
Я тоже за то, чтобы не быть голословным, а чем-то подкреплять.

Разберем на конкретном примере открытия нескольких файлов и вывода на экран первой строки:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub Files_Check()
Dim FileName 'имя файла
Dim FirstLine$ 'чтение первой строки файла
Dim SkipFile As Boolean 'флаг, определяющий пропустить ли файл
On Error GoTo err_handler 'при любой ошибке переходит к обработчику
 
For Each FileName In Array("c:\1.txt", "c:\2.txt", "c:\3.txt") 'в цикле 3-е имен файлов
    SkipFile = False 'очистка флага
    Open FileName For Input As #1 'открываем файл
        If SkipFile = True Then GoTo nxt 'если обработчик сказал пропустить файл, идем в конец цикла
        Line Input #1, FirstLine 'читаем первую строку
        If Len(FirstLine) <> 0 Then MsgBox FileName & vbLf & FirstLine 'если переменная не пуста - выводим на экран
    Close #1 'закрываем файл
nxt:
Next 'дальше по циклу
Exit Sub 'выход
 
err_handler:
  Select Case Err.Number 'выбор действия по номеру ошибки
       Case 53: If MsgBox("File Not Found! Continue?", vbYesNo) = vbNo Then Exit Sub Else SkipFile = True
       Case 71: If MsgBox("Disk Not Ready! Try Again?", vbYesNo) = vbNo Then Exit Sub
       Case Else: If MsgBox("Error " & Err.Number & vbLf & Err.Description & _
         vbLf & "Continue?", vbYesNo) = vbNo Then Exit Sub 'все остальные ошибки
  End Select
End Sub
Ремарка: представим, что программа большая и обработчик ошибок нельзя более конкретизировать.

Итак, какие здесь ошибки, и как бы это могло выглядить лучше на другом ЯП?

Проанализирую с точки зрения VB:
Плюсы:
1. При возникновении любой ошибки программа не выдаст исключения вообщем-то никогда, а покажет обычный MsgBox с информацией о номере и описании ошибки. Также спросит хотим ли мы продолжить работу и спокойно начнет выполнять последующие команды.
2. В обработчике нет безусловных переходов GoTo (универсальность).
3. Реализован флаг - т.о. если файл отсутствует, будут пропущены все последующие команды в цикле, которые иначе тоже начали бы выдавать ошибки.
off. 4. Если начнем пользоваться API есть также возврат ошибки
Err.LastDllError
Функция GetLastError()
Возвращает код последней ошибки вызывающего потока. С помощью нее можно получить код ошибки при неудачном выполнении API функции.

В Visual Basic вместо этой функции используйте Err.LastDllError.


Минусы:
5. Обработчик VB не умеет показывать в каком месте кода и какая команда выдала ошибку,
а) Хотя для тяжелых случаев можно организовать разбиение на подпрограммы с отдельными обработчиками и модификатором On Local Error
б) А если сильно захотеть то видел за бугром и такую библитеку.
в) Вариант "Ы". Есть спец. Debug-метод: пронумеровуем каждую строку, получаем позицию ошибки
функцией Erl
Erl()

Недокументированная функция Erl(Error line) определяет локальный номер строки, в которой произошла последняя ошибка времени исполнения. Может быть полезной при отладке сложных процедур, в которых по номеру ошибки, выдаваемому объектом Err, сложно определить ее происхождение. Рекомендуется использовать в бета-версиях программ, что позволить узнать места ошибок. Для этого надо включить информацию из нее в каждый обработчик ошибок и перенумеровать все строки внутри процедур (Существуют Add-in, позволяющие перенумеровать все строки)

Возвращаемое значение

Функция возвращает значение типа Long, содержащее значение номера строки. Локальные номера строк задаются программистом. Если на строке, в которой произошла ошибка, номера не задано, функция возвращает ноль
(да можно даже надстройку сделать).
6. Open не является функцией, поэтому в конкретном куске кода нельзя получить ErrorLevel для анализа.
(спорно, что лучше - это или централизированный обработчик).

Недоработки программиста:
7. Нет проверки While EOF (если конец файла). Если файл будет пуст - снова ошибка, а ведь
этого можно было не допускать - на совести прогера.
8. Недоработка ли? или возможность? : итого по работе с файлом есть вот
СТОЛЬКО
52 Bad file name or number. (File Handle already in use)
53 File not found. (File may not exist or probably a typo)
54 Bad File Mode. (Using Input# when File open in Output/Append Mode
or using Print#/Write# when File open in Input Mode)
55 File Already Open. (You have forgotten to close the file before
opening it again.)
57 Device I/O Error. (Hardware fault. Check your Hard disk.)
58 File already Exists.
59 Bad Record Length. (Only for Random Access Files)
61 Disk Full (No free space on disk drive)
62 Input past end of file. ( A file is being read even after the EOF
has been reached. Check if the Eof()
Condition is placed and used correctly.)
63 Bad Record Number. (Only for Random Access Files)
67 Too many files at the same time. (Too many files are currently open)
68 Device unavailable.
70 Permission Denied. (Disk is write-protected.)
71 Disk not Ready.
74 Can't rename files across different drives
75 Path/File Access Error
76 Path Not Found.
ошибок и это может быть не исчерпывающий список. Так нужно ли перед открытием файла все это проверять:
  • достаточно ли прав на открытие
  • достаточно ли места на диске, если что-то записываем
  • допустимые символы в имени
  • превышение ограничения макс.длины String-переменной для чтения UNIX-файла
  • прочие переполнения и ошибки.

Товарищи, интересует мнение, как это все реализовано на других языках, на С++ например.
Если программист хоть что-нибуть малейшее не предусмотрит из этого большого списка ошибок, то крешиться ли программа на другом ЯП и как от этого уберечься.
А как на счет ее "живучести" в среде VB? Стоит ли городить кучу кода для обработчика, если у нас будет огромный проект на VB?

Я лично считаю, если для серъезного проекта, то НУЖНО делать проверок сколько возможно. Но не замедлит ли это программу? Или достаточно проверять только самые критические параметры, а на остальное закрывать глаза обработчиком...

Не по теме:

Спасибо gaw, но я никакой не профи.

0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,653
Записей в блоге: 13
16.07.2012, 16:11 35
Цитата Сообщение от Dragokas Посмотреть сообщение
А если сильно захотеть то видел за бугром и такую библитеку.
- загляните в мою надстройку (я её прикрепил в своём посте выше).
1
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
16.07.2012, 18:08  [ТС] 36
Уважаемые форумчане в Ваш спор не лезу, т.к. еще только учусь всему и очень рад что подсказываете!!!
Что касается проги, очень так сказать уязвима пока!!!
И абонент кот. через модем отправляю голосовое сообщение, то занят, то не берет трубку ("нехороший человек").
Так вот вопрос: как запустить типа часов, допустим на 30сек (чтобы абонент наговорился), а потом перейти по метке???
Только чтобы прога шла (засыпания мне НЕ подойдет) и шел отсчет времени???
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
16.07.2012, 20:23 37
Перед циклом:
Visual Basic
1
2
dim t&
t=timer
В цикле:
Visual Basic
1
if timer>t+30 or timer<t then goto ...
1
4394 / 2244 / 252
Регистрация: 28.10.2011
Сообщений: 8,575
Записей в блоге: 6
16.07.2012, 20:32 38
Цитата Сообщение от Dragokas Посмотреть сообщение
8. Недоработка ли? или возможность? : итого по работе с файлом есть вот СТОЛЬКО ошибок и это может быть не исчерпывающий список. Так нужно ли перед открытием файла все это проверять:
Ого сколько ошибок, приводящих к исключениям!
Причем если работать с файлом используя WinAPI, то исключений вообще не будет, несмотря на кучу ошибок.
Вот пример (не на VB, но переписать на него несложно).
PureBasic
1
2
3
4
5
6
7
8
9
10
11
hFile = CreateFile_("C:\testing.txt", #GENERIC_READ | #GENERIC_WRITE, #FILE_SHARE_READ, #Null, #OPEN_EXISTING, #FILE_ATTRIBUTE_NORMAL, #Null) 
 
myString.s = "Testing, testing, 1,2, 1,2"
WriteFile_(hFile, myString, Len(myString), @actBytes, #Null)
 
SetFilePointer_(hFile, 100, 0, #FILE_BEGIN)
 
myString2.s = Space(20) 
ReadFile_(hFile, @myString2, Len(myString2), @actBytes, #Null) 
  
CloseHandle_(hFile)
Обратите внимание на следующие моменты.
Врядли на диске C: вашего компа окажется файл с именем testing.txt, поэтому функция CreateFile() не сможет его открыть. Поэтому функция завершится с ошибкой.
Я специально не проверяю возникновение ошибки и начинаю работать с файлом.
Сначала пишу в него строку, потом выполняю позиционирование, потом читаю, после чего закрываю файл.
Еще раз подчеркну, все это делаю с несуществующим файлом и естественно что все эти операции завершаются с ошибкой, но это не приводит к падению программы.

Почему VB-программа падает при малейшей ошибке в работе с файлами, это наверное вопрос к М$.


Цитата Сообщение от Dragokas Посмотреть сообщение
Если программист хоть что-нибуть малейшее не предусмотрит из этого большого списка ошибок, то крешиться ли программа на другом ЯП и как от этого уберечься.
Как выяснили, не падает, а просто игнорирует выполнение команд работы с файлами, поскольку файл недоступен.
Естественно что функции сообщают об ошибках и с помощью GetLastError() можно получить их номер, но в данной программе для упрощения это не производится.
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
16.07.2012, 20:37 39
Ну да, это моя грубая ошибка.
Между строк 24-25 нужно вставить:
Visual Basic
1
Resume next
убедитесь, что ничего не падает. Просто принцип работы отличается.

Но то, что ошибка генерируется всегда, в отличие от API - это да. Но эта ошибка и есть своего рода Errorlevel в API, которая не приводит к падению, если используется обработчик.
Почитайте хотя-бы эту тему. Не вижу смысла продолжать Вам что-то доказывать.
0
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,734
16.07.2012, 20:46 40
ну а как насчёт того, что проверяя ошибки это быстрее делается, когда много миллионный цикл лучше спровоцировать ошибку обработать её чем цикл лопатить?
0
16.07.2012, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2012, 20:46
Помогаю со студенческими работами здесь

Как отследить из проги на Си завершение другой проги
Есть две программы, одна написана не мной и исходников нет (main), вторую я пытаюсь написать сам...

3 проги по С++
Народ помогите сделать запись в файл 3 способами: Файлы. -------------1...

ПРОГИ
удалена ссылка САЙТ СПРОГАМИ ВРОДЕ КАК БЕСПЛАТНО

Проги
Ребята помогите решить две задачки я уже мозги сломал, вот условия задач: 1. Даны натуральное n,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru