Что нового

Остановка скрипта при ошибке

SavickiyAV

Новичок
Сообщения
20
Репутация
0
Есть скрипт с использованием GUI.
Код:
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit

Case $knopka

$Conn = _FTP_Connect($Open, $server, $username, $pass)
   If @error Then MsgBox(64, "Ошибка", "Ошибка подключения к FTP")

EndSwitch
wend

Сейчас при ошибке мы получаем сообщение после которого скрипт продолжает отрабатывать. Как сделать так что бы после сообщения(или вместо сообщения) происходила остановка выполнения скрипта без закрытия GUI?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 541
Репутация
326
Остановка выполнения скрипта означает закрытие приложения. Что у Вас скрипт продолжает отрабатывать? После сообщения об ошибке нет никакого кода.
 
Автор
S

SavickiyAV

Новичок
Сообщения
20
Репутация
0
Остановка выполнения скрипта означает закрытие приложения. Что у Вас скрипт продолжает отрабатывать? После сообщения об ошибке нет никакого кода.
Код значительно больше, не вставлял его для того что бы не загружать лишнюю информацию и не править логин/пароль FTP
И все же если нужно то поправлю пример кода

Код:
GUISetState(@SW_SHOW)
While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      Exit
    Case $knopka
      MsgBox(64, "1", "1")
      $Conn = _FTP_Connect($Open, $server, $username, $pass)
      If @error Then MsgBox(64, "Ошибка", "Ошибка подключения к FTP")
      MsgBox(64, "2", "2")
  EndSwitch
WEnd
 
Последнее редактирование модератором:

Medic84

Омега
Команда форума
Администратор
Сообщения
1 541
Репутация
326
Код:
If @error Then
    MsgBox(64, "Ошибка", "Ошибка подключения к FTP")
Else
    MsgBox(64, "2", "2")
EndIf

А вообще, такие вещи делаются в отдельных функциях.
Код:
While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      Exit
    Case $knopka
      __StartFTP()
  EndSwitch
WEnd

Func __StartFTP()
    MsgBox(64, "1", "1")
    $Conn = _FTP_Connect($Open, $server, $username, $pass)
    If @error Then
      MsgBox(64, "Ошибка", "Ошибка подключения к FTP")
      Return
    EndIf
    MsgBox(64, "2", "2")
EndFunc
 
Автор
S

SavickiyAV

Новичок
Сообщения
20
Репутация
0
попробовал оба варианта предложенного кода но остановки выполнения скрипта после сообщения "Ошибка подключения к FTP" не происходит
Сообщение автоматически объединено:

решил проблему следующим добавлением следующего кода

Код:
$dist=(@ScriptFullPath)
    Run($dist)
    Exit


Код:
If @error Then
    MsgBox(64, "Ошибка", "Ошибка подключения к FTP")  
    $dist=(@ScriptFullPath)
    Run($dist)
    Exit
Else
    MsgBox(64, "2", "2")
EndIf
 
Последнее редактирование:

Medic84

Омега
Команда форума
Администратор
Сообщения
1 541
Репутация
326
Таких костылей я еще не видел. Это апогей.
 

IMStrelcov

CTPEJIbLLOB
Сообщения
97
Репутация
12
Код:
;чтобы вновь сработало, когда нужно, збрасывай переменную $iError = 0
Global $iError = 0

GUISetState(@SW_SHOW)
While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
        Exit
    Case $knopka
        If Not $iError Then
            MsgBox(64, "1", "1")
            $Conn = _FTP_Connect($Open, $server, $username, $pass)
            If @error Then
                $iError = 1
                MsgBox(64, "Ошибка", "Ошибка подключения к FTP")
            EndIf
            MsgBox(64, "2", "2")
        EndIf
    EndSwitch
WEnd
 
Верх