gpt4 book ai didi

java - 终止 Java 程序而不退出 Matlab?

转载 作者:太空宇宙 更新时间:2023-11-04 15:14:51 26 4
gpt4 key购买 nike

所以最近我一直在开发一个将从 Matlab 执行的 Java 小程序(因为 matlab 是处理和解析大型数组的简单方法)。我在这方面有一个问题。在我的 Java 程序中,我通常按以下方式处理异常和其他错误:

System.err.println("WARNING: [SOME ERROR MESSEAGE GOES HERE]"); 
System.exit(-1);

我寻求的是在Matlab中接收错误消息并关闭Java小程序。

问题是 System.exit(-1) 语句终止两者 Matlab 和 Java,因此让我回到桌面。

对于如何仅关闭我的 Java 小程序并在此保持 Matlab 打开以便用户收到错误消息,你们有什么建议吗?

最佳答案

描述:感谢@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。

关于java - 终止 Java 程序而不退出 Matlab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com