如何修复HecDSS Python脚本中的NameError: Java错误
我正在处理在HecDSS中读取和写入信息的工作。昨晚我的脚本运行得很好,但今天早上打开它时却开始出现这个错误:
ScriptEngine.execute:Error in script Traceback (innermost last):
File "<string>", line 13, in ?
NameError: java
我现在使用的基本代码是:
from hec.script import *
from hec.hecmath import *
from java import *
try:
dssFile = DSS.open("C:/Documents and Settings/SWP/Desktop/MVCA.dss")
outflow = dssFile.read("/MAITLAND VALLEY/BLYTH/PRECIP-INC/01DEC2011/30MIN/OBS/")
newOutflow = outflow.add(10.)
path = DSSPathname(newOutflow.getPath())
fPart = path.fPart() + " Test"
path.setFPart(fPart)
newOutflow.setPathname(path.getPathname())
dssFile.write(newOutflow)
except java.lang.Exception, e :
MessageBox.showError(e.getMessage(), "Error reading data")
我只是想弄清楚为什么它突然不工作了。谢谢大家的帮助!
1 个回答
1
使用 *
导入会把模块里的所有名字都引入到本地的命名空间里。也就是说,如果你这样做:
from java import *
那么 java
模块里有一个叫 lang
的子模块,你可以直接用 lang
来访问它,而不是 java.lang
。
我对 Jython 了解不多,但我觉得你可能想要的是这样的:
import java.lang
这样的话,你就可以把这个异常称作 java.lang.Exception
。
至于为什么之前能正常工作,可能是因为之前从来没有抛出过异常。现在抛出了异常,它试图去捕捉,但找不到这个异常的类型。