Как отловить ошибку на экране в переменную в TCL, используя catch
Чтобы исправить ошибку на экране, хотя поймать, например,
puts $c
#error on terminal : can't read "c": no such variable
catch {puts $c} err
puts $err # value of err 1
Есть ли способ отловить фактическое сообщение об ошибке в TCL, кроме сигнала в переменной err.
1 ответ
Решение
Да. Прочитайте ::errorInfo
или же ::errorCode
глобальные переменные для получения трассировки стека и машинно-разборный трехэлементный список "POSIX error", соответственно.
Начиная с Tcl 8.5, также можно передавать имя словаря catch
после имени переменной для получения результата, и этот словарь будет заполнен большей частью того, что можно получить с помощью "классических" переменных ошибок, которые я описал выше, и многого другого.
Это все объясняется в catch
страница справочника.