powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Обработка ошибок и goto в VBS
10 сообщений из 10, страница 1 из 1
Обработка ошибок и goto в VBS
    #34202287
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильно ли я понимаю, что в VB Script в отличии от VB и VBA обработка ошибок сильно урезана и нет оператора GOTO.
На VBS можно написать
Код: plaintext
1.
2.
3.
4.
5.
On Error resume next
<операция где может быть ошибка...>
if Err.Number> 0  then
<обработка ошибки>
end if
On Error goto  0 
Но это все, перейти из вложенных функций в случае ошибки на несколько уровней вверх нельзя, в отличии от JS где есть полноценная обработка исключений с try, catch, throw и VB где можно тоже самое:

Код: plaintext
1.
2.
3.
4.
5.
On Error goto Err1
Call <функции где может быть ошибка>
Exit Sub ' все сделали без ошибок и вышли
Err1:
<обработка ошибок>
end sub

или я что-то не допонимаю и есть в VBS какие-то приемы которые позволяют аналогичные тандартной обработке исключительных ситуаций как в JS.
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34202369
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В vbs оставлено только два обработчика - On Error Resume Next и On Error Goto 0.
Оператор Goto остался только в этом втором обработчике и метки тоже упразднены.
Другими словами, в vbs есть только inline error handling.
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34203730
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
On Error resume next
Забудьте навсегда!
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34204222
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С какой стати?
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34206455
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyС какой стати?
C такой, что это есть глотание исключений, при чем непонятно на каком шаге. Не нужно портить жизнь себе и людям которым придется заниматься поддержкой такого кода.
Правильней:
Код: plaintext
On Error goto Err1 
и
Код: plaintext
try catch
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34206720
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Е-мае, ну нету в vbs перехода по меткам как и самих меток!!! Читаем одно слово из пяти?
И это не тупое "глотание" исключений - посмотри таки на первый пример кода из первого поста, внимательный наш. И какое отношение try catch имеют к vbs?

Кстати там ошибка. Правильней будет if Err.Number<>0 then потому что код ошибки может быть и отрицательным.
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34210635
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Советую вообще забыть про GoTo это ещё с 90-х считается дурным тоном программирования
________________________
Спроси, может отвечу ;)
icq 111718060
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #34211283
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже поговорка была "количество goto в программе обратно пропорционально умственным способностям программиста".
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Обработка ошибок и goto в VBS
    #35546355
Фотография Admin_Vlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как на VBS сделать чтобы появилось сообщение "База данных недоступна" вместо стандартной ошибки при неудачного коннекта с базой данных?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<%
   Dim MaxLines, Str
   MaxLines = CInt(Session("LNum"))  

On error resume next

  Call Connect  
  sSQL = "SELECT TOP " & CStr (MaxLines) & " * FROM Chat Order By DateSaid DESC"  
   
  Rs.open sSQL, Conn  
   
  Do While Not Rs.Eof  
   Str = Rs.Fields("Said").value  
   Response.Write  Str  
   Rs.MoveNext  
  Loop      
   
  Response.Write "<br>"  
   
  Call Close  
%> 
...
Рейтинг: 0 / 0
Обработка ошибок и goto в VBS
    #35546778
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из такого текста не понятно, с какой стати база недоступна. Сам же отлаживать замучаешься.

Я так понимаю, соединение с базой происходит в Connect? Сделай из нее функцию, возвращающую, допустим True, при удачном коннекте, и перепиши:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
On error resume next

  If Connect  then
    sSQL = "SELECT TOP " & CStr (MaxLines) & " * FROM Chat Order By DateSaid DESC"  
    Rs.open sSQL, Conn  
    Do While Not Rs.Eof  
     Str = Rs.Fields("Said").value  
     Response.Write  Str  
     Rs.MoveNext  
    Loop      
    Response.Write "<br>"  
    Call Close  
  else
    Response.Write "База недоступна (" & Err.Description & ")"
  End If
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Обработка ошибок и goto в VBS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]