1

我正在研究 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")

我只是想弄清楚为什么它突然不起作用。谢谢你的帮助!

4

1 回答 1

1

*导入将模块中的所有名称导入本地命名空间。所以你这样做:

from java import *

并且java模块有一个名为的子模块lang,你可以访问它lang,而不是java.lang

我对 Jython 了解不够,但我认为你想要这样的东西:

import java.lang

在这种情况下,您可以将异常称为java.lang.Exception.

关于它以前为什么起作用,它可能以前从未引发过异常。现在它做到了,它试图捕捉它,但它找不到异常类型。

于 2011-12-02T14:09:43.763 回答