Команда Tcl error
записывает указанное сообщение в stderr
, добавляя к нему префикс «Ошибка:».Как изменить префикс ошибки Tcl?
Можно ли изменить этот префикс на что-то еще, например, «ERROR:» или «MyError:»?
Команда Tcl error
записывает указанное сообщение в stderr
, добавляя к нему префикс «Ошибка:».Как изменить префикс ошибки Tcl?
Можно ли изменить этот префикс на что-то еще, например, «ERROR:» или «MyError:»?
Команда error
сама ничего не пишет нигде, кроме результата Tcl. Что это такое Фактически делает это исключение (типа «ошибка», TCL_ERROR на уровне API C). Код, который префикс с ним «Error:
», является стандартным обработчиком аварийного восстановления, но вы можете использовать его самостоятельно, используя ваш основной скрипт catch
, чтобы уловить любой результат и решить, что с ним делать (или try …
с 8,6 года, что проще для использования при улавливании определенных проблем).
if {[catch {source realscript.tcl} msg]} {
# Caught an error!
puts stderr "Oh noes! Teh errorz iz atakkin! $msg"
puts stderr $::errorInfo
exit 1
}
OK, если вы используете 8.5, то немного лучший способ написать это:
if {[catch {source realscript.tcl} msg resultdict]} {
# Caught an error!
puts stderr "Oh noes! Teh errorz iz atakkin! $msg"
puts stderr [dict get $resultdict -errorinfo]
exit 1
}
Там много других интересных вещей в словаре результат, который вы могли бы или может быть неинтересен.