Mensagem de erro customizada

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Mensagem de erro customizada

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

Re: Mensagem de erro customizada

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).

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

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.

Top