如何在 Julia 中实现(派生)异常类型?

问题描述 投票:0回答:1

我正在尝试弄清楚如何为我用 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
exception error-handling julia
1个回答
0
投票

这是正确的。一旦

someFunction
停止使用
throw("random string")
并使用
throw(LibraryException("random string"))
if err isa LibraryException
就会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.