如何在Java中捕获和解析IOException错误代码


ProcessBuilder processBuilder = new ProcessBuilder(file.getAbsolutePath());
processBuilder.directory(file.getParentFile());
try {
processBuilder.start();
System.exit(0);
} catch(IOException ex) {
ex.printStackTrace();
}

当我使用C://:

java.io.io异常:无法运行程序"C:\Users\User\Documents\NetBeansProjects\UsefulTul":CreateProcess错误=5,存取被拒。

当我使用C://sdfsdsfjsdi时:

java.io.io异常:无法运行程序"c:\sdfsdsfjsdi"(在目录"c:\"中(:CreateProcess错误=2,系統找不到指定的檔案。

如何在Java 中捕获error=<code>

您可以使用regex从消息中获取期望的值。

try {
processBuilder.start();
System.exit(0);
} catch(IOException ex) {
String msg = ex.getMessage();
Pattern pattern = Pattern.compile(".*(error=.*),.*");
Matcher matcher = pattern.matcher(ex.getMessage());
if (matcher.find()) {
System.out.println("Result: " + matcher.group(1));
}
}

输出为:

Result: error=2
Process finished with exit code 0

注意:在我的运行中,error=2是由ex.getMessage()给出的消息。在你的情况下可能会有所不同。

最新更新