带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.4用户生成的返回码(二)

简介: 带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.4用户生成的返回码

带外信号

带外返回码比带内返回码更常见、更有用,因为以下两种情况界限分明   :一个值是有效数据和性能元数据可反映出一个错误或故障。另外,由于该返回码依然表示一个通用宏变量,该变量必须初始化和重置,因此,空白返回码表明某个过程未遇到任何警告或运行时错误。带外信号唯一的缺点可能是必须创建附加的宏变量以传递该返回码。

带内信号部分所举的带内返回码案例稍作修改即可展示带外信号。在本例中,&VARS     现在仅代表数据集中变量的数量,不再传达性能故障。因此,如果出现异常情况,&VARS依然是丢失的(而不是设置为FAILURE

%macrotest;

%globalvars;

%letvars=;

%globaltestrc;

%lettestrc=GENERALFAILURE;

%letdsid=%sysfunc(open(perm.final,i));

%if%sysfunc(sysrc())=0%then%do;

%letvars=%sysfunc(attrn(&dsid,nvars));

%letclose=%sysfunc(close(&dsid));

%lettestrc=;

%end;

%else%lettestrc=FAILURE;

%mend;

 

%test;

%putVARS:&vars;

%putTESTRC:&testrc;

 

带外返回码的另一个优点是当空的宏变量用于表示正常运行时,%LENGTH   宏函数将用于评估是否出现了异常情况,因为返回码的长度在正常运行情况下是“0

以下修改显示的是 %RUNTEST宏,它是调用子 %TEST宏的父进程。如果 %TEST是成功的,%RUNTEST会在 PERM.Final 中打印变量的数量 ;如果不成功,%TEST将在日志中打印一个错误。当然,在实际的生产软件中,异常情况处理框架不会在日志中打印信息,而是动态地改变以下程序流。

%macroruntest;

%test;

%if%length(&testrc)=0%then%putVARS:&vars;

%else%putAnexceptioncausedafailure;


%mend;

 

%runtest;

 

创建带外返回码的逻辑必须确保返回码与其所代表进程的宏变量同步。例如,在    上述代码中,&TESTRC表示 %TEST宏函数的性能,而 &TESTRC能生成 &VARS。因此,它应该与 &VARS完美同步。如果 &VARS包含一个值,&TESTRC就应该是丢失的 ;如果&VARS是丢失的,&TESTRC就应该设置为 FAILURE 或 GENERALFAILURE。

在上述%TEST宏中,如果 ATTRN函数出现异常情况或错误,那么将不会设&VARS,因此,它会是空白的。&TESTRC也会是空白的,因为异常情况处理仅测试 OPEN函数的故障而非 ATTRN 的故障。尽管这一故障不可能发生,但这种逻辑错误可能会造成故障,两个宏变量都是空白的。为了解决这一漏洞,可以测试ATTRN函数是否成功,或者测试 &VARS的值以验证它被有效赋值。第 6章进一步讲述返回码的成功运用。

相关文章
|
4天前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
23 11
|
4月前
|
数据采集 存储 监控
数据驱动开发:如何将数据分析融入开发流程
【8月更文挑战第14天】数据驱动开发是一种高效、智能的软件开发方法论,它通过将数据分析深度融入开发流程中,实现了精准决策、提升效率和持续改进的目标。为了成功实施数据驱动开发,团队需要明确数据需求、设计合理的数据架构、集成数据收集工具、实施CI/CD流程、进行数据分析与决策支持以及建立反馈循环机制。同时,还需要应对数据质量、技术和组织与文化等挑战。通过不断努力和实践,团队可以逐步建立起完善的数据驱动开发体系,推动产品不断迭代升级和业务持续增长。
|
6月前
|
存储 弹性计算 DataWorks
云端开发与数据分析的强强联合
通过这次方案的搭建和使用,我更加确信阿里云产品组合是企业数字化转型的强大助力。我鼓励大家积极探索和尝试这些服务,以发掘它们在实际业务中的潜力和价值。我深刻体会到了阿里云产品组合的强大能力和灵活性。它们不仅帮助我们解决了实际问题,还为未来的发展提供了坚实的基础。我强烈推荐其他企业和开发者尝试这样的产品组合,以提升开发效率和数据处理能力。
137 35
|
6月前
|
存储 数据挖掘 索引
Python streamlit框架开发数据分析网站并免费部署
使用Python的Streamlit框架,开发了一个在线数据分析工具,替代Excel查看设备温度CSV数据。通过pandas读取数据,matplotlib绘制图表。程序处理CSV,提取所需列,计算最大最小平均值,用户可多选查看特定数据。[GitHub](https://github.com/yigedaigua/MGHB)上有完整代码,应用已部署至Streamlit Cloud。
131 1
|
7月前
|
数据可视化 数据挖掘 Python
基于Python开发的Excel数据分析系统(源码+可执行程序+程序配置说明书+程序使用说明书)
基于Python开发的Excel数据分析系统(源码+可执行程序+程序配置说明书+程序使用说明书)
158 0
|
7月前
|
机器学习/深度学习 数据挖掘 BI
推荐一款 Python 数据分析报告开发与分享神器
推荐一款 Python 数据分析报告开发与分享神器
127 0
|
7月前
|
机器学习/深度学习 数据采集 人工智能
Python可以应用于多个领域,如Web开发、数据分析、机器学习等
Python可以应用于多个领域,如Web开发、数据分析、机器学习等
128 0
|
SQL 数据采集 数据可视化
数据开发模块中的SQL和数据分析模块中的SQL查询
数据开发模块中的SQL和数据分析模块中的SQL查询
179 1
|
数据挖掘
怎么理解数据分析、维度和指标?
怎么理解数据分析、维度和指标?
|
机器学习/深度学习 人工智能 算法
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
188 0
下一篇
DataWorks