java - Stata有没有类似于Java的 `try and catch`机制?

标签 java try-catch stata

我正在编写一个 .do 来检查多个 .dta 文件中是否存在某些变量,以及检查这些变量的某些值是否存在.但是,我的代码在遇到无效变量名时停止执行。

我知道我混合使用 Java 和 Stata 编码,这是完全不合适的,但我有什么办法可以做类似的事情:

try {
su var1
local var1_mean=(mean)var1
local var1_min=(min)var1
local var1_max=(max)var1
...
}
catch (NoSuchVariableException e) {
System.out.println("Var1 does not exist")
}
// So that the code does not stop executing...?

最佳答案

简短的回答是肯定的。稍微长一点的答案是,通过类比 Java 来猜测语法可能是什么,成功的可能性很小。最好阅读 Stata 的文档,例如首先浏览 [P] 手册中的主要条目。

这里被困的问题是不存在var1。此代码是合法的,或者我相信:

capture su var1, meanonly 

if _rc == 0 { 
     local var1_mean = r(mean)
     local var1_min  = r(min)
     local var1_max  = r(max)
}
else display "var1 does not exist"

这个想法有两个方面。 capture 吃掉它作为前缀的命令的任何错误,但返回代码仍然可以在 _rc 中访问。非零返回代码是错误代码。

一个相关的命令是confirm,例如

capture confirm var var1 

检查变量 var1 是否存在。

关于java - Stata有没有类似于Java的 `try and catch`机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884421/

相关文章:

r - 什么相当于 Stata 对 R 中白噪声的 portmanteau (Q) 测试?

list - 访问Stata中的列表元素

stata - 如何让Stata的语法命令忽略varlist中不存在的变量?

java - 如何在java web应用程序中配置数据库参数?

c++ - Try-Catch 和 Delete[] 问题

java - 通用 HashMap

java - 小程序计算和监听器问题和外观

java - 编译时出错

java - testrunner 类文件中的glue 命令和@StepDefAnnotation 的用途是什么?

Java If 语句与 && 和 .equal