【问题标题】:Java 7 error on multi-catch exception多捕获异常上的 Java 7 错误
【发布时间】:2014-10-15 13:00:02
【问题描述】:

我在安装了 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 中允许使用 multi-catch 语句,对吧?


2014 年 15 月 10 日更新

我知道如果我以这种方式使用 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

2014 年 11 月 20 日更新

发现问题。即使我告诉它不要使用它,它也是使用 1.6 Java 兼容性的 Play。还不明白为什么,也不明白怎么做鞋底,但至少我明白问题出在哪里...... :)

【问题讨论】:

  • 我认为是 |部分
  • 尝试将每个 Myexception 放在自己的 catch 中
  • 问题出在编译器上...即使我得到了 JDK7,它也会为 JDK6 兼容性而编译,我真的不明白如何阻止它... :(
  • 嗯? jdk 6 不允许多捕获
  • 假设:“...在 Java SE 7 及更高版本中有效...” - docs.oracle.com/javase/7/docs/technotes/guides/language/…

标签: playframework java-7 multi-catch


【解决方案1】:

在 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 2014-03-21
    • 2017-03-15
    • 2010-12-14
    • 2010-09-16
    相关资源
    最近更新 更多