Rebol的错误!type 作为一个对象返回,您可以从中检查和提取属性。
>> result: try [1 / 0]
** Math error: attempt to divide by zero
** Where: / try
** Near: / 0
>> probe result
make error! [
code: 400
type: 'Math
id: 'zero-divide
arg1: none
arg2: none
arg3: none
near: [/ 0]
where: [/ try]
]
...
请注意,当该错误冒泡到控制台并且是评估链的最后一个值时,它会将其转换为字符串并将其呈现给用户。例如“数学错误:尝试除以零”。
如何在我自己的代码中生成这个字符串?我知道我可以深入研究system
对象并找到那些字符串,然后自己尝试将它们组合在一起。但是二进制文件中没有一些官方功能可以做到这一点吗?