Разработчики подпрограмм 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, так как эти ошибки в противном случае выявляются и скрываются (по замыслу) в подпрограммах с защитой от записи и записи.