这是一个计算器应用程序。当我尝试编译它时,会出现以下消息unreported exception javax.script.ScriptException; must be caught or declared to be thrown
未报告的异常javax.script.ScriptException;必须被捕获或宣布被抛出
我有一种感觉,因为该类设置为ActionEvent
。我是一名学生,所以我仍然在学习:)
任何想法?由于
\
这是一个计算器应用程序。当我尝试编译它时,会出现以下消息unreported exception javax.script.ScriptException; must be caught or declared to be thrown
未报告的异常javax.script.ScriptException;必须被捕获或宣布被抛出
我有一种感觉,因为该类设置为ActionEvent
。我是一名学生,所以我仍然在学习:)
任何想法?由于
\
你可以做到以下几点:
// .. other imports
import javax.script.ScriptException;
// .. the rest of your code
if(source==buteq){
try{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("JavaScript");
Object result = se.eval(createEquasion);
finalAnswer = result.toString();
answer.setText(finalAnswer);
catch(ScriptEngineManager e) {
// handle exception
System.err.println("Error evaluating the script: " + e.getMessage());
}
}
在你处理任何类型的异常的方法之外的情况下,你可以在你的方法添加throws
宣言签名:
// .. other imports
import javax.script.ScriptException;
// your method signature
public void actionPerformed (ActionEvent e) throws ScriptException {
// ...
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("JavaScript");
Object result = se.eval(createEquasion);
finalAnswer = result.toString();
answer.setText(finalAnswer);
// ...
这应该是它。
在你这个actionPerformed
方法行se.eval(createEquasion);
抛出ScriptException
。你必须处理这个Excpetion。
添加以下代码complie类
Object result = null;
try {
result = se.eval(createEquasion);
} catch (ScriptException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (result != null)
finalAnswer = result.toString();
ScriptEngine.html#eval
可以抛出2 Exception
NullPointerException
是RuntimeException的那么编译器w ^生病不会强迫你处理这个。但ScriptException
被选中异常,所以编译器会强制你处理这个Exception
要么将代码块插入try catch或抛出它。
try-catch
块
if(source==buteq){
try{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("JavaScript");
Object result = se.eval(createEquasion);
finalAnswer = result.toString();
answer.setText(finalAnswer);
}catch(ScriptException se){
...
}
}
ScriptException
类的声明 -
public class ScriptException extends Exception{...}
请找到更多的信息 -
你的'ScriptEngineManager'代码在哪里? – subodh 2013-03-04 05:45:10
你如何处理代码中的异常?您只是直接向用户提供异常,或者只是将其包含在错误消息中? – 2013-03-04 05:56:58