Как мне узнать, какие ошибки может генерировать команда tcl?

Разделите, чтобы получить соотношение между размерами двух диапазонов, затем вычтите начальное значение вашего внутреннего диапазона, умножьте на коэффициент и добавьте начальное значение вашего второго диапазона. Другими словами,

R = (20 - 10) / (6 - 2)
y = (x - 2) * R + 10

Это равномерно распределяет числа из первого диапазона во втором диапазоне.

2
задан 18 January 2019 в 03:07
поделиться

2 ответа

Различные POSIX ошибки происходят из ОС, и вам нужно угадать системный вызов и найти их. Например, не очень удобно догадываться, что команда open отображается на системный вызов open() , и поэтому в ней зафиксированы ошибки. Некоторые из них очень маловероятны с Tcl (например, те, которые относятся к передаче неверного буфера, что составляет POSIX EFAULT), но мы не гарантируем, что ОС не вернет их, потому что ОС просто не дает нам такой гарантии .

Мы должны задокументировать наиболее вероятные из команд, которые касаются операционной системы, но на высоком уровне:

  • класс POSIX из ОС (например, чтение не - существует POSIX ENOENT), а
  • классы TCL взяты из собственного внутреннего кода Tcl (например, из-за передачи неверного числа аргументов в open, что дает вам TCL WRONGARGS, или запрос слишком большого выделения памяти, что дает вам TCL MEMORY, если Tcl удается восстановить).

Мы вряд ли исчерпывающе документируем все возможности (особенно в классе TCL), так как многие вряд ли в правильном коде.

0
ответ дан Donal Fellows 18 January 2019 в 03:07
поделиться

try {} trap {} используется, когда существует конкретная ошибка, которую необходимо перехватить. Для более общей ловушки используйте try {} on error {}.

try {
   set fh [open myfile.txt w]
} on error {err res} {
   puts "Error on open: $res"
}

Существует также команда catch:

if { [catch {set fh [open myfile.txt w]}] } {
   puts "error on open."
}

Ссылки: try catch

0
ответ дан Brad Lanam 18 January 2019 в 03:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: