所以最近我一直在研究一个将从Matlab执行的Java applet(因为matlab是一种处理和解析大型数组的简单方法)。我在这方面有问题。在我的Java程序中,我通常通过以下方式处理异常和其他错误:
System.err.println("WARNING: [SOME ERROR MESSEAGE GOES HERE]");
System.exit(-1);
我所寻求的是在Matlab中接收错误消息并关闭Java小程序。
问题是System.exit(-1)
语句终止两者 Matlab和Java,因此将我带回我的桌面。
您是否有任何关于如何仅关闭我的Java小程序的建议,并保持Matlab打开,以便用户收到错误消息。
答案 0 :(得分:0)
说明强>
感谢@watery和MATLAB External Interfaces handbook,看起来Java代码成为MATLAB实例的一部分。因此,System.exit(-1)
不仅会终止JAVA程序,还会终止MATLAB本身。
<强>解决方案:强>
如果您打算从matlab运行java类,请不要使用System.exit(-1)
。相反,您可以做的是在JAVA中抛出未经检查的异常(您可以使用预定义的异常或创建自己的异常,如下所示)。
示例:强>
if (problem)
throw new InsufficientInputException("[ERROR MESSAGE GOES HERE]");
您需要自己创建未经检查的异常,并将throws InsufficientInputException
添加到if(problem)
嵌套在其中的方法中。
public class InsufficientInputException extends Exception{
public InsufficientInputException(String message) {
super(message);
}
}
这将终止JAVA程序,让用户(在MATLAB中)留下错误消息,但不终止MATLAB。