我正在尝试遵循此处的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/