第二十三章 使用 %Status 值
许多类使用 %Status 数据类型类来表示状态信息,并且它们的方法返回表示成功或错误的 %Status 值(状态)。如果状态表示一个错误(或多个错误),则状态值还包括有关错误的信息。
还可以返回自己的状态值。
本文讨论状态值以及如何使用它们。
使用状态值的基础知识
如上所述,许多 类中的方法返回一个状态以指示成功或错误。例如,%Library.Persistent中的%Save()` 方法返回一个状态。对于任何此类方法,请务必获取返回值。然后检查状态,然后适当地继续。基本工具如下:
-
要检查状态是表示成功还是错误,请使用以下任一方法:
$$$ISOK和$$$ISERR宏,在包含文件%occStatus.inc中定义。此包含文件在所有对象类中自动可用。- 和 方法,它们在终端(不能使用宏)中特别方便。
-
要显示错误详细信息,请使用
$SYSTEM.OBJ.DisplayError()或 。这些方法彼此等效。他们将输出写入当前设备。 -
要获取包含错误详细信息的字符串,请使用 。
示例
/// d ##class(PHA.TEST.AdvancedConcepts).Status()
ClassMethod Status()
{
s object = ##class(Sample.Person).%New()
s object.Name = "yao,xin"
s tSC = object.%Save()
if $$$ISERR(tSC) {
d $SYSTEM.OBJ.DisplayError(tSC)
q
}
}
.png)
.png)

.png)

Globals,这些存储数据的魔剑,已经存在了一段时间,但是没有多少人能够有效地使用它们,也没有多少人知道这个超级武器。

