java - 无法编译 : sparkjava exception handling

标签 java intellij-idea exception spark-java

我正在尝试遵循此处的sparkjava异常处理示例,但没有成功:http://sparkjava.com/documentation.html#exception-mapping 。他们发布的代码似乎不太正确?我能够修复发布的方法之一,以便它可以编译。文档页面上未编译的方法是:

get("/throwexception", (request, response) -> {
    throw new NotFoundException();
});

我更改为此代码并编译:

    get(new Route("/throwexception") {
        @Override
        public Object handle(Request request, Response response)  {
            throw new IllegalArgumentException();
        }
    });

但是,我无法编译此方法。怎么了?我使用 java 8 和 IntelliJ 社区版 15.0.2 进行编译。我的 java 模块设置为语言级别 8。这是可疑的方法:

    exception(Exception.class, (e, request, response) -> {
        //TODO: implement this after it compiles.
    });

这是我从编译器得到的错误:

Error:(83, 9) java: cannot find symbol
  symbol:   method exception(java.lang.Class<java.lang.Exception>,(e,request[...]->{ })
  location: class org.me.JournalController

为了确认我确实使用的是 java 8,这个使用 lambda 表达式的示例确实可以编译:

public class Lambdas {
    public static void main(String[] args) throws Exception {
        new Lambdas().start();
        Thread.sleep(1000);
    }

    public void start(){
        Interface f = () -> System.out.println("test");
    }
}

最佳答案

原始代码使用lambda表达式,您应该使用Java 8来编译它。

关于java - 无法编译 : sparkjava exception handling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34969198/

相关文章:

java - 为什么我的 Java 记录器文件不起作用?

scala - 如何知道 Scala 隐式定义的来源?

intellij-idea - 为什么在 IntelliJ Idea 中找不到要转到的声明?

c++ - 如何在内部使用 C++ 异常并可以在旧平台上运行的 linux x64 上创建共享库对象?

java - 如何让父方法抛出异常?

java - 为什么IntelliJ的菜单和上下文菜单打开后立即关闭?

java - Heroku JVM 内存配额超出,但数字不相加

java - Processing IDE 启动 - 未启动任何Processing 2.0 版本(测试版和稳定版)

java - 错误 : java: package org. springframework.boot 不存在

c++ - 异常被 Win32 消息调度程序捕获的问题