多捕获异常的Java 7错误

时间:2014-10-15 13:00:02

标签: playframework java-7 multi-catch

我在安装了JavaSE 1.7.0_60的MacOS 10.9.5(Mavericks)上运行我的java应用程序。

我想使用multi-catch语句来捕获一些例外...
但是当我尝试运行我的应用程序时,我收到了这样的错误:

Internal Server Error (500) for request GET /tresTest/authenticate
Compilation error (In /app/controllers/TestBoxController.java around line 57)
The file /app/controllers/TestBoxController.java could not be compiled. Error raised is : Syntax error on tokens, delete these tokens

出现此错误的原因是这行代码:

try {
  class.someMethodTrowingException();
} catch (MyExceptionNo1 | MyExceptionNo2 | MyExceptionNo3 e) {
  doSomethigUseful();
}

如果在我的控制台上输入java -version,我得到了这个结果:

java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

我无法理解为什么会出现这种行为。 Java7中允许使用多捕获语句,对吧?


更新10.15.2014

我知道如果我以这种方式使用catch,一切顺利

try {
  class.someMethodTrowingException();
} catch (MyExceptionNo1 e1) {
  doSomethigUseful();
} catch (MyExceptionNo2 e2) {
  doSomethigUseful();
} catch (MyExceptionNo3 e3) {
  doSomethigUseful();
}

但是我的目标是使用像catch (MyExceptionNo1 | MyExceptionNo2 | MyExceptionNo3 e) {...}

这样的多捕获语句

检查出来:http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html

更新11.20.2014

发现问题所在。即使我告诉它不使用它,它也会使用1.6 Java兼容性。不明白为什么,并且不了解如何唯一,但至少我明白问题在哪里...... :)

1 个答案:

答案 0 :(得分:0)

在maven中添加以下插件,使用Java 1.7版

进行编译
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.1</version>
    <configuration>
          <source>1.7</source>
          <target>1.7</target>
    </configuration>
</plugin>