Mensagem de erro customizada Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

User avatar
juanmuscaria
Posts: 65
Joined: 29 Oct 2017, 10:53
Location: Brazil
Contact:

Mensagem de erro customizada

Post by juanmuscaria » 06 Jul 2018, 17:09

Bem, eu queria uma mensagem de erro customizada para meu script.
Eu conheço o Try e o Catch, porem quero para o script inteiro.
garry
Posts: 3737
Joined: 22 Dec 2013, 12:50

Re: Mensagem de erro customizada

Post by garry » 07 Jul 2018, 15:20

fazer uso de > #Warn (?)

example-1

Code: Select all

OnError("a1",1)
; this is a test on error goto

%e1% = ccc        ; <<  isto está errado


Gui,show,x0 y0 w200 h120 ,TEST
return
Guiclose:
Exitapp

a1(e)
{
aa:= % "ERROR`nError at Line = "  e.line  "`nWith = " e.extra "`nMessage= " e.message  "`nError occured at= "  e.what  "`nFile= "  e.file  "`n"
msgbox,%aa%
return true
}
example-2

Code: Select all

#warn  ;- para o script inteiro
;---------------------------------
f1:="https://www.websitenotexist.pt"       ;- failure - wrong adress
;f1:="http://50.7.70.58:8708/played.html"

xx:=ComObjCreate("WinHttp.WinHttpRequest.5.1")
;ComObjError(false)
;xx.Silent := True    ;- script failure = off
;---------------------------------------------
xx.SetTimeouts(500,500,500,500)
;xx.SetTimeouts(1,1,1,1)              ;<- failure = The operation timed out
gosub,aa1
return

aa1:
try{
    xx.Open("GET",f1)
    xx.Send()
    aac=
    aac:=xx.ResponseText
} catch e {
    xxx:=e.Message
    msgbox, 262208,ERROR,Error=`n%xxx%`n----------------minha mensagem--------------------------`nBoa tarde .. xy .. `n
    return
    }
msgbox, 262208,%f1%,%aac%
return
avoid error
evitar erro

Code: Select all

;- allow only 3 digits and then skip to next edit
Gui, Add, Text,, Number1:
Gui, Add, Edit, gcheck_length vDate1 number limit3,
Gui, Add, Text,, Number2:
Gui, Add, Edit, gcheck_length vDate2 number limit3,
Gui, Add, Button, x10 y425 w80 h30 Default, OK
Gui, Show, x700 y91 h465 w470, TITLE
Return

Guiclose:
exitapp

buttonOK:
Gui, Submit,nohide
msgbox,%date1%`n%date2%
return

check_length:
Gui, Submit, NoHide
if (StrLen(%A_GuiControl%) = 3)
   GuiControl, Focus, % "Date" . (SubStr(A_GuiControl, 0) + 1)
return
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Mensagem de erro customizada  Topic is solved

Post by Gio » 09 Jul 2018, 10:34

Bom dia Juanmuscaria.

Não entendi o que você quis dizer com "para o script inteiro".

Tipo, se der um erro de execução (e não de código) e o script terminar abruptamente você quer que um erro customizado apareça?

:arrow: Se for isso, você deve entender que é o windows quem lida com o gerenciamento dos processos, e quando um processo simplesmente para de responder e o windows pergunta se você quer esperar ele responder ou terminá-lo, qualquer código daquele script provavelmente não será mais executado a não ser que o processo volte a responder. Portanto, é inviável que um código de dentro do script gerencie mensagens nesses casos.

No entanto, é possível criar um segundo script (um segundo processo, que seja executado simultaneamente) que verifique continuamente os processos atuais e exiba uma mensagem se perceber que um processo do autohotkey foi terminado abruptamente nos últimos X segundos. Essa solução pode funcionar, mas costuma ser um pouco bagunçada e dar um pouco de trabalho para implementar (você teria que usar uma rotina settimer com verificação através do comando process e ainda teria que fazer uma espécie de comunicação entre os scripts para garantir que o script de verificação soubesse discernir quando foi o usuário que terminou, por exemplo).

Ou você quer uma única mensagem padrão sempre que o script terminar por erro de código?

:arrow: Nesse caso seria um try & catch mesmo ou então condicionais de verificação com msgboxes. No caso do try & catch tem uma função que permite até mesmo alterar as mensagens de erro de código que aparecem quando uma linha do script gera um problema. Não é algo que está muito claro na documentação, mas o usuário Nnnik fez um tutorial bacana sobre como fazer. Você pode encontrá-lo aqui. O tutorial está em inglês, mas se precisar de alguma ajuda, pode postar aqui (só não explico muito a fundo agora porque ainda não tenho certeza se é isso que você quer).
User avatar
juanmuscaria
Posts: 65
Joined: 29 Oct 2017, 10:53
Location: Brazil
Contact:

Re: Mensagem de erro customizada

Post by juanmuscaria » 10 Jul 2018, 18:44

Acho que vou fazer isso mesmo,vou por um try no script inteiro
Post Reply

Return to “Ajuda e Suporte Geral”