Palavras-chave: Tcl/Tk, capturar, erros
Quando um procedimento é executando em Tcl, ele retorna 1 (sucesso) ou 0 (falha). É este resultado que faz o interpretador mostrar ou não um erro.
Para não mostrar o erro ao usuário, mas detectá-lo e tratá-lo no código, use o comando catch. Ele chama o interpretador Tcl de forma recursiva, executando o código e retorna 5 possíveis sinais:
- 0 – TCL_OK
- 1 – TCL_ERROR
- 2 – TCL_RETURN
- 3 – TCL_BREAK
- 4 – TCL_CONTINUE
Por exemplo, como saber se a conexão ao banco de dados foi bem sucedida?
if { [catch {set token [mysqlconnect \ -host sqlserver \ -user user_db \ -db banco_de_dados \ -password senha]} err_con] } { puts "Erro ao Conectar : $err_con" }
Se o comando de conectar obteve sucesso, o catch retorna 0 (zero) ou false, fazendo com que o if não execute.
Ou seja: com uso do catch, o script não é interrompido em caso de erro, como acontece nas outras linguagens de script. Na verdade, um script (ou pelo menos um proc) inteiro pode ser executado dentro de catch { }, e o script segue em frente mesmo que haja erros DE PROGRAMAÇÃO OU SINTAXE! Resta ao programador preparar o programa para as diversas possibilidades de erro.
Tcl é uma linguagem maravilhosa.