無法解析(檢查語法)groovy代碼。 parse()
方法不拋出任何異常,但在執行時會拋出異常從句法上解析groovy腳本
GroovyShell gEngine = new GroovyShell();
gEngine.evaluate("def n; print ddd"); // throws an exception
gEngine.parse("def n; print ddd"); // don't throws Excption
無法解析(檢查語法)groovy代碼。 parse()
方法不拋出任何異常,但在執行時會拋出異常從句法上解析groovy腳本
GroovyShell gEngine = new GroovyShell();
gEngine.evaluate("def n; print ddd"); // throws an exception
gEngine.parse("def n; print ddd"); // don't throws Excption
從常規API:
分析給定的腳本並返回準備運行
對求值當前綁定一些腳本,並將結果返回
正如他在評論@tim_yates筆記,evaluate
運行腳本,而parse
回不運行它的腳本對象,這就是爲什麼evaluate
拋出異常:groovy.lang.MissingPropertyException: No such property: ddd
但是如果你運行的parse
返回的腳本就會拋出同樣的異常:
GroovyShell gEngine = new GroovyShell()
def script = gEngine.parse("def n; print ddd")
script.run() // throws missingPropertyException
'parse'不會嘗試運行腳本,'evaluate'的確如此。該代碼在語法上沒有問題。但是這是邏輯上的。不確定問題是什麼? –
它在運行時拋出異常,它不能在編譯時拋出異常,因爲我不想讓代碼執行。 – Kamal
但是這個腳本沒問題。 'ddd'可能會在運行時添加到腳本中,所以它會起作用。所以在編譯時,它沒有錯誤... –