2013-12-11 63 views
0

我正試圖使用​​下面的代碼從新聞組上的其他答案中評估一個字符串。使用腳本引擎管理器來評估Java字符串代碼時出錯

import java.lang.Object;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

ScriptEngineManager m = new ScriptEngineManager();

ScriptEngine e = m.getEngineByName(「js」);

Object result = e.eval(「13 + 23-3」);

但是, 我收到「未報告的異常javax.script.ScriptException; myst被捕獲或聲明被拋出」..在編譯時的錯誤。 由於我在很大程度上仍然在學習和不熟悉異常處理,有人可以幫助我嗎?

謝謝。

回答

4

當一個方法聲明一個檢查到的異常,如ScriptException時,你必須捕獲並處理它,或者聲明你的方法拋出它。在後一種情況下,調用你的方法的每個方法現在都必須捕獲或聲明它,並且鏈繼續進行。

你能趕上與try/catch塊的異常:

try { 
    Object result = e.eval("13+23-3"); 
    System.out.println("It worked!:" + result.toString()); 
} 
catch (ScriptException se) { 
    System.out.println("Problem in eval:", se.getmessage()); 
}