Юлия Вебсокетс - что защищено от перезаписи и от записи? - PullRequest
1 голос
/ 23 марта 2019

Я заметил в API веб-сокетов Julia, что есть функции, называемые readguarded и writeguarded. Для чего именно это?

Документы, кажется, объясняют, что они используются для регистрации ошибок, но это все, что они делают?

При использовании readguarded или writeguarded, ошибки регистрируются с помощью @debug заявления. Установите уровень ведения журнала используемого вами регистратора как «Отладка», так как в 'examples / count_with_logger.jl'.

1 Ответ

1 голос
/ 26 марта 2019

Разработчики подпрограмм Socket Джулии решили, что подпрограммы сокетов чтения и записи выдают исключение при сбое, аналогично исключению, которое выдают подпрограммы открытия файла при ошибке. Подпрограммы readguarded и writeguarded - это подпрограммы чтения и записи сокетов, заключенные в try-catch, так что они могут возвращать ошибку при исключении, как показано ниже, из исходного кода WebSockets.jl:

function readguarded(ws)
    data = Vector{UInt8}()
    success = true
    try
        data = read(ws)
    catch err
        @debug err
        data = Vector{UInt8}()
        success = false
    finally
        return data, success
    end
end

Операторы @debug затем используются для регистрации ошибок с использованием библиотеки Logging, так как эти ошибки в противном случае выявляются и скрываются (по замыслу) в подпрограммах с защитой от записи и записи.

...