Error handling 为什么julia除了我想抛出的错误之外还抛出LoadError
如果我编写的脚本除了抛出这样一个错误之外什么也不做:Error handling 为什么julia除了我想抛出的错误之外还抛出LoadError,error-handling,julia,Error Handling,Julia,如果我编写的脚本除了抛出这样一个错误之外什么也不做: throw(ErrorException("a useful message")) 我在执行脚本时出现以下错误 $julia throwError.jl 错误:LoadError:一条有用的消息 堆栈跟踪: [1] 顶级范围位于/path/throwerr.jl:1 [2] 包括(::函数,::模块,::字符串)在./Base.jl:380 [3] 在./Base.jl:368包含(::模块,::字符串) [4] exe
throw(ErrorException("a useful message"))
我在执行脚本时出现以下错误
$julia throwError.jl
错误:LoadError:一条有用的消息
堆栈跟踪:
[1] 顶级范围位于/path/throwerr.jl:1
[2] 包括(::函数,::模块,::字符串)在./Base.jl:380
[3] 在./Base.jl:368包含(::模块,::字符串)
[4] exec_选项(::Base.jl选项)位于./client.jl:296
[5] _start()位于./client.jl:506
在表达式中,从/path/throwError.jl开始:1
我想知道为什么我的错误消息中会出现LoadError:
我对其他错误类型也有同样的看法。例如:
throw(DivideError())
$julia throwError.jl
错误:LoadError:DivideError:integer除法错误
堆栈跟踪:
…同上。。。
这个问题中“为什么?”的完整答案相当复杂。一种回答方法是简单地参考文档字符串以了解LoadError
:
对文件进行加密、加密或删除时出错。错误细节
应在.error
字段中提供
因此,由于错误发生在julia尝试包含文件时,而不是在成功包含后调用文件中的函数时,因此错误被包装在LoadError
中
但是Julia真的必须在LoadError
s中包装错误吗?答案似乎是否定的,因为Julia的回溯已经改进,LoadError
s不再是确保开发人员拥有关于错误位置的必要信息所必需的。从1.2 a之前开始。似乎还有一些事情需要解决,但我们希望很快就能解决它们
其他相关链接:
:合并PR:确保语法错误位置出现在回溯中
-改进回溯,以便能够删除加载错误
:解释不推荐的一些背景的注释LoadError
交叉发布:
LoadError(file::AbstractString, line::Int, error)