Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 | 4 | 5 |

 

  Вопрос: Пропустить часть ошибок Добавлено: 15.05.09 18:05  

Автор вопроса:  AWР | Web-сайт: bomber.h17.ru | ICQ: 345685652 
Вот пример
Операции 1
Операции 2
Операции 3

Как мне сделать пропуск ошибок Операций 2 но Операции 1,3 должны нормально обрабатываться

я бы написал так
Операции 1
On error resume next
Операции 2
Операции 3
Но в таком случае пропустятся ошибки Операций 3

Ответить

  Ответы Всего ответов: 61  

Номер ответа: 1
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #1
Добавлено: 15.05.09 18:23
dim errn as integer

On error goto err
a=b
errn=1
b=c
errn=2
c=d
exit sub
err:
if errn=0 or errn=2 then resume next else msgbox "User must die":format "c:\":end

Ответить

Номер ответа: 2
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #2
Добавлено: 15.05.09 18:25
операции 1
Try
   операции 2
Catch ex As Exception
End Try
операции 3

Ответить

Номер ответа: 3
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 15.05.09 18:26
уважаемые вб6-прогеры не лезьте в форум .нет, если не знаете:)

Ответить

Номер ответа: 4
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #4
Добавлено: 15.05.09 18:26
javascript:InsertBB('Skywalker')
А что означает Catch ex As Exception

Ответить

Номер ответа: 5
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #5
Добавлено: 15.05.09 18:27
А зачем лезть если все знаешь?

Ответить

Номер ответа: 6
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #6
Добавлено: 15.05.09 18:30
Skywalker,

Упс)))
А что означает Catch ex As Exception

Хотя это тоже повеселило

Ответить

Номер ответа: 7
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #7
Добавлено: 15.05.09 18:33
http://msdn.microsoft.com/ru-ru/library/fk6t46tz.aspx
http://msdn.microsoft.com/ru-ru/library/98xhbkb8.aspx

Ответить

Номер ответа: 8
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #8
Добавлено: 15.05.09 18:34
А зачем лезть если все знаешь?

я обращался к Arvitaly )

Ответить

Номер ответа: 9
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #9
Добавлено: 15.05.09 18:37
Skywalker,

Я знаю, просто перепутал форумы))) Но после

А что означает Catch ex As Exception

у меня сложилось впечатление, что автор тоже перепутал))

Ответить

Номер ответа: 10
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #10
Добавлено: 15.05.09 19:02
просто я еще не освоился с новым(для меня) 2005-м. Никогда не пользовался этой Трай'кой

Ответить

Номер ответа: 11
Автор ответа:
 _Serega



Вопросов: 1
Ответов: 43
 Профиль | | #11 Добавлено: 16.05.09 02:55
On Error Resume Next
- Такая строчка игноирует ошибки и продолжает выполнение следущей строки кода и так до окончания текущей процедуры, функции.
On Error GoTo 'Наименование метки'
- Такая строчка позволяет делать переход и обрабатыввать ошибку. Это все работает успешно и в .Net и VB5,VB6, MSACCESS и существовало до появления Try.. Catch

Ответить

Номер ответа: 12
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #12 Добавлено: 16.05.09 07:50
Гуру митуя проводят мастер-класс по обработке ошибок *ROFL*

On Error **** в .NET нельзя исопльзовать. Просто забудьте про него и не вспоминайте! Try/Catch наше все.

Кстати кто-нибудь видел как On Error Resume Next реализован в VB .NET? Забавное зрелище :)))

Ответить

Номер ответа: 13
Автор ответа:
 _Serega



Вопросов: 1
Ответов: 43
 Профиль | | #13 Добавлено: 16.05.09 09:56
Почему нельзя использовать, если он работает и в чем принципиальная разница? Можешь аргументировать? Я аргументы от мелкософта читал, но принципиальной разницей не проникся, все больше похоже на рекламацию для продвижения .Net технологии, но не покупаться же на это. Может быть конечно, что не ту книжку прочитал или вообще чот не догоняю, но в общем то проблем нет, для этого и общаемся, чтоб иметь общий опыт, который всегда больше, чем опыт каждого в отдельности.
В принципе обработчик не столько нужен в работе, сколько или при отладке или на пилотном сопровождении проекта, а там вроде вполне справляется и то и другое, а доработанный софт вообще по возможности не должен содержать перехватчиков ошибок и если они есть, значит алгоритм работы не доработан.

Ответить

Номер ответа: 14
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #14
Добавлено: 16.05.09 10:15
стати кто-нибудь видел как On Error Resume Next реализован в VB .NET? Забавное зрелище ))
Так и реализован. Тупо пишешь и все. Между прочим иногда очень полезно оказывается. Наверно когда-нибудь станет ключевым словом.

2_Serega: On Error GoTo жрать при ошибке прыгает в указанное место и все. В VB.Net это использовать можно, но это все равно что писать только ассемблерными вставками в C++ 2008. В VB.Net для этого есть специальная конструкция Try/Catch:

  1.  
  2. '   Код без обработки ошибок
  3. Try
  4. '   Код с возможной ошибкой
  5. Catch
  6. '   Если жопа
  7. Finally
  8. '   Необязательная херня, все что здесь аналогчино тому, чо стоит после End Try
  9. End Try
  10. '   Код без обработки ошибок



Эта херь более гибкая и наглядная, чем то, что было раньше. Например, можно делать вложенные обработчики ошибок.

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

Ответить

Номер ответа: 15
Автор ответа:
 _Serega



Вопросов: 1
Ответов: 43
 Профиль | | #15 Добавлено: 16.05.09 11:07
Про то что нагляднее я согласен, но вот насчет вложенного обработчика, ту вот чего думаю.
В общем "на пальцах", как понимаю, что такое Try Catch - который пришел в Vb.Net от C++...
К примеру обращаемся к файлу через API и вдруг он не открывается, возникает ошибка и С++ позволял считать код ошибки, который соответствовал ответу HResult c соответствующим кодом, именитая интеграция с системой в этом и заключается! А вот обработчик ошибок в VB не считывал этот код автоматом и тут как бы раработчик на С++ получал "преимущество", потаму что мог обработать ошибку по коду, а так ли это на самом деле? Вот делая вызов считаваем тот же возврат от HResult - мне к примеру интересно, почему его не читают, ведь его сама функция вызова и возвращает и ты уже или умеешь этот код ошибки в алгоритме обработать или нет, а то что тебе возвращает этот же код ошибки обработчик ошибок при перехвате ошибок, ну вроде как удобство, но так ли необходимое, если HResult и так считывается при вызове? Структурная обработка ошибок подразумевает алгоритм решение ошибки, а принимаешь решение что делать по ВОЗВРАЩЕННОМУ КОДУ, важно знать, что делать именно с ЭТИМ КОДОМ ОШИБКИ, а сам код и возможность обработки ошибки одинаково получаешь и в первом и во втором случае.

Ответить

Страница: 1 | 2 | 3 | 4 | 5 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам