Как я могу получить номер строки кода вместе с errorinfo? - PullRequest
1 голос
/ 30 сентября 2019

Я использую следующий код TCL:

proc RunCSM { scen } {
                catch { $scen start }
                if { "[$scen status]" != "SUCCESS" } {
                        puts "$scen FAILED.  Error Info:"
                        puts "[$scen errorInfo]" ...

Проблема заключается в том, что в этом случае при возникновении ошибки он отображает информацию об отладочной информации об ошибке по желанию в качестве вывода флага errorInfo, нов этом случае мне нужен также номер строки кода, который не удается. Как это возможно?

1 Ответ

3 голосов
/ 30 сентября 2019

Самый простой способ, начиная с 8.5 и далее, - перейти в форму catch, которая позволяет получить расширенную информацию о результатах в виде словаря (в переменной opt ниже) в ее секунде необязательный аргумент после скрипта:

catch { $scen start } msg opt
if { "[$scen status]" ne "SUCCESS" } {   # use 'ne' to compare strings, please
    set info [dict get $opt -errorinfo]
    set line [dict get $opt -errorline]
    puts "$scen FAILED saying '$msg' at $line. Error Info:"
    puts $info
    # ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...