Come correggere NameError: Errore Java nello script hecdss python
Domanda
Sto lavorando alla lettura e alla scrittura di informazioni in HECDSS. Ho fatto funzionare bene questa sceneggiatura ieri sera tranne quando l'ho aperto stamattina ho iniziato a ricevere questo errore:
ScriptEngine.execute:Error in script Traceback (innermost last):
File "<string>", line 13, in ?
NameError: java
Il codice di base che sto usando ora è:
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")
Sto solo cercando di capire perché non funziona all'improvviso. Grazie per qualsiasi aiuto!
Soluzione
Il *
Importa importa tutti i nomi dal modulo nello spazio dei nomi locali. Quindi fai:
from java import *
E il java
moduli ha un sottomodulo chiamato lang
, puoi accedervi come lang
, non java.lang
.
Non ne so abbastanza su Jython, ma penso che tu voglia qualcosa del genere:
import java.lang
Nel qual caso puoi fare riferimento all'eccezione come java.lang.Exception
.
Per quanto riguarda il motivo per cui ha funzionato prima, probabilmente non ha mai sollevato un'eccezione prima. Ora lo ha fatto e cerca di catturarlo, ma non riesce a trovare il tipo di eccezione.