我正在尝试弄清楚如何为我用 Julia 编写的库实现自定义异常类型。
这是我到目前为止所想出的,主要是通过遵循我在网上其他地方找到的信息。
struct LibraryException <: Exception
message::String
end
Base.showerror(io::IO, err::LibraryException) = print(io, err.message)
这在我发现的少数资源中似乎很常见,但是每个参考文献都以某种方式有所不同。每个参考文献之间的不一致并不能让我对信息的准确性有很高的信心。
我现有的代码看起来有点像这样。
try
return someFunction(someargs)
catch err
if (err isa ErrorException) && (occursin("part of expected message", sprint(showerror, err)))
printlnOrLog(err)
return false
else
rethrow(err)
end
end
如果是这样的话会更好。
catch err
if err isa LibraryException
这是正确的。一旦
someFunction
停止使用 throw("random string")
并使用 throw(LibraryException("random string"))
,if err isa LibraryException
就会起作用。