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.