Я загружаю список файлов, используя http-пакет tcl, и мне было интересно, как лучше всего справляться с прерываниями. Сейчас схема моей процедуры загрузки выглядит так:
proc downloadFiles {url_list folder_location} {
foreach {i} $url_list {
regsub {.*/(.*)$} $i {\1} $name
set out [open $folder_location/$name w+] //not worried about errors here
if {[catch {set token [http::geturl $i -channel $out]}]} {
puts "Could not download $i"
} else {
http::cleanup $token
puts "Downloaded $i"
}
close $out
}
}
Строка, с которой у меня возникают проблемы, - это оператор catch:
catch {set token [http::geturl $i -channel $out]}
Очевидно, несмотря на то, что я отключил свой Интернет и остановил загрузку на полпути, оператор catch все еще возвращает 0 для ошибок. Есть ли способ поймать это?