diff --git a/src/cpython/jlwrap.jl b/src/cpython/jlwrap.jl index cce75270..2738a4f2 100644 --- a/src/cpython/jlwrap.jl +++ b/src/cpython/jlwrap.jl @@ -206,6 +206,12 @@ function _pyjl_serialize(self::PyPtr, ::PyPtr) return PyBytes_FromStringAndSize(pointer(b), sizeof(b)) catch e PyErr_SetString(POINTERS.PyExc_Exception, "error serializing this value") + # wrap sprint in another try-catch block to prevent this function from throwing + try + @debug "Caught exception $(sprint(showerror, e, catch_backtrace()))" + catch e2 + @debug "Error printing exception: $e2" + end return PyNULL end end @@ -221,6 +227,12 @@ function _pyjl_deserialize(t::PyPtr, v::PyPtr) return PyJuliaValue_New(t, x) catch e PyErr_SetString(POINTERS.PyExc_Exception, "error deserializing this value") + # wrap sprint in another try-catch block to prevent this function from throwing + try + @debug "Caught exception $(sprint(showerror, e, catch_backtrace()))" + catch e2 + @debug "Error printing exception: $e2" + end return PyNULL end end