带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码(二)

简介: 带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码

&SYSERRORTEXT

&SYSERRORTEXT   自动宏变量是特殊的,对它进行介绍的唯一理由是尽量避免使用它。它包括当前 SAS会话中生成的或打印到 SAS日志中的最近一次错误信息的文本。一个错误信息并不表示出现了真正的“运行时错误”。例如,用 %PUT序指令打印ERROR:FAKE”将导致&SYSERRORTEXT改变为FAKE,如以下输出信息所示。

%putBEFORE:&syserrortextLENGTH:%length(&syserrortext);BEFORE:            LENGTH:0

%putERROR:FAKE;ERROR:FAKE

%putAFTER:&syserrortextLENGTH:%length(&syserrortext);

AFTER:FAKE    LENGTH:4

 

下面的输出信息显示的是实际产生的“运行时错误,该错误是因为LENGTH程序指令中增加的美元符号造成了语法错误。由于  &SYSERRORTEXT    宏变量是只读的,而且仅在新的错误出现时重置,因此,它无法手动重置为丢失的。

%putBEFORE:&syserrortextLENGTH:%length(&syserrortext);

BEFORE:     LENGTH:0

datafinal;

lengthchar$$10;

-391

76

ERROR391-185:Expectingavariablelengthspecification.ERROR76-322:Syntaxerror,statementwillbeignored.run;

 

NOTE:TheSASSystemstoppedprocessingthisstepbecauseoferrors.WARNING:ThedatasetWORK.FINALmaybeincomplete.Whenthisstepwasstoppedtherewere0observationsand0variables.

NOTE:DATAstatementused(Totalprocesstime):realtime                       0.08seconds

cputime               0.06seconds

 

%putAFTER:&syserrortext     LENGTH:%length(&syserrortext);

AFTER:76-322:Syntaxerror,statementwillbeignored.      LENGTH:48

 

&SYSERRORTEXT的另一个警告是它仅能捕获最后运行时错误某些缺点会产生多个连续的运行时错误。在本例中,增加的美元符号会造成两个连续的错误391-18576-322,因此,若在DATA步骤之后立即评估 &SYSERRORTEXT,则只有第二个错误语法错误,忽略程序指令将会被保留  下来。这非常令人遗憾,因为第一个错误程序指令相对更加有信息性希望获得一个变量长度规格

另外,&SYSERRORTEXT还能隐藏 &SYSWARNINGTEXT的使用。如前面“&SYSWARNINGTEXT”部分所述。&SYSWARNINGTEXT     应该仅在两种情况下评估 :在程序启动之前&SYSCC重置以及在程序完成之后 &SYSCC=4时。在本例中,由于除了警告之外,还出现了错误,&SYSCC    被赋予了较高的错误值,而非警4;从编程方式来看,没有办法确定&SYSWARNINGTEXT的值是当前的、关的,因为 &SYSCC设置为一个错误代码,而不是一个警告代码。

&SYSWARNINGTEXT类似,&SYSERRORTEXT的值会保留在整个SAS会话中,因此,不相关的 &SYSERRORTEXT 值将会影响后续不相关的程序。例如,执行完上述代码之后,一个独立的程序会执行 DATA步骤,并在不出现任何“运时错误”的情况下成功创建FINAL2数据集,&SYSERR&SYSCC的值均为0便显示出该程序未出现任何错误。然而,原始程序中   &SYSERRORTEXT    的值会保留在输出信息中,因为这个只读的宏变量无法重置。

%letsyscc=0;

datafinal2;

lengthnum8;run;

 

NOTE:ThedatasetWORK.FINAL2has1observationsand1variables.NOTE:DATAstatementused(Totalprocesstime):

realtime             0.03seconds

cputime               0.03seconds

 

%putSYSERR:&syserr;SYSERR:0

%putSYSCC:&syscc;SYSCC:0

%putSYSWARNINGTEXT:&syswarningtext;

SYSWARNINGTEXT:DatasetWORK.FINALwasnotreplacedbecause


thisstepwasstopped.

%putSYSERRORTEXT:&syserrortext;

SYSERRORTEXT:76-322:Syntaxerror,statementwillbeignored.

 

为了克服最后一个缺点并确保&SYSERRORTEXT仅在恰当的时候被评估,代码应该仅在两种情况下引用 &SYSERRORTEXT&SYSCC>4以及在程序启动之前 &SYSCC立即重置。由于存在前述介绍的许多缺点且作用有限,不推荐使用&SYSERRORTEXT。

相关文章
|
7月前
|
消息中间件 监控 数据可视化
实时看板数据分析的力量:推动高效决策的17个关键维度
实时看板数据分析通过可视化工具将企业运营数据实时整合展示,助力快速决策。它结合数据收集、处理与交互分析,广泛应用于制造、零售、金融等领域,提升响应速度与协作效率。技术上依赖流数据处理与可视化工具,如Power BI、Tableau等,同时关注数据安全与用户体验优化。
473 1
|
机器学习/深度学习 人工智能 自然语言处理
构建企业级数据分析助手:Data Agent 开发实践
本篇将介绍DMS的一款数据分析智能体(Data Agent for Analytics )产品的技术思考和实践。Data Agent for Analytics 定位为一款企业级数据分析智能体, 基于Agentic AI 技术,帮助用户查数据、做分析、生成报告、深入洞察。由于不同产品的演进路径,背景都不一样,所以只介绍最核心的部分,来深入剖析如何构建企业级数据分析助手:能力边界定义,技术内核,企业级能力。希望既能作为Data Agent for Analytics产品的技术核心介绍,也能作为读者的开发实践的参考。
1164 2
构建企业级数据分析助手:Data Agent 开发实践
|
数据采集 机器学习/深度学习 数据可视化
构建高效数据分析系统的关键技术
【10月更文挑战第5天】构建高效数据分析系统的关键技术
233 0
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
940 4
|
数据采集 机器学习/深度学习 数据可视化
【优秀python web系统毕设】基于python的全国招聘数据分析可视化系统,包括随机森林算法
本文介绍了一个基于Python的全国招聘数据分析可视化系统,该系统利用数据挖掘技术、随机森林算法和数据可视化技术,从招聘网站抓取数据,进行处理、分析和预测,帮助用户洞察招聘市场,为求职者和企业提供决策支持。
1082 3
|
机器学习/深度学习 数据采集 人工智能
设计文档:智能化医疗设备数据分析与预测维护系统
本系统的目标是构建一个基于人工智能的智能化医疗设备的数据分析及预测维护平台,实现对医疗设备运行数据的实时监控、高效处理和分析,提前发现潜在问题并进行预防性维修,从而降低故障率,提升医疗服务质量。
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
234 11
|
数据采集 存储 监控
数据驱动开发:如何将数据分析融入开发流程
【8月更文挑战第14天】数据驱动开发是一种高效、智能的软件开发方法论,它通过将数据分析深度融入开发流程中,实现了精准决策、提升效率和持续改进的目标。为了成功实施数据驱动开发,团队需要明确数据需求、设计合理的数据架构、集成数据收集工具、实施CI/CD流程、进行数据分析与决策支持以及建立反馈循环机制。同时,还需要应对数据质量、技术和组织与文化等挑战。通过不断努力和实践,团队可以逐步建立起完善的数据驱动开发体系,推动产品不断迭代升级和业务持续增长。
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
230 0
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
1069 0