不编译:sparkjava 异常处理
doesn't compile: sparkjava exception handling
我正在尝试按照位于此处的 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
为了确认我确实在使用 java8,这个使用 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表达式,你应该使用Java8来编译。
我的 maven 文件列出了两次 sparkjava 依赖项。我认为我的 IDE 在某些时候自动为我导入了 1.1.1 而我没有意识到。我有 1.1.1 和 2.3。当我删除过时的 1.1.1 sparkjava 依赖项时,一切都按预期工作。
您可以将 throw 语句提取到一个函数中:
get("/throwexception", () -> BlowUp());
(snip)
public static void BlowUp()
{
throw new NotFoundException();
});
我正在尝试按照位于此处的 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
为了确认我确实在使用 java8,这个使用 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表达式,你应该使用Java8来编译。
我的 maven 文件列出了两次 sparkjava 依赖项。我认为我的 IDE 在某些时候自动为我导入了 1.1.1 而我没有意识到。我有 1.1.1 和 2.3。当我删除过时的 1.1.1 sparkjava 依赖项时,一切都按预期工作。
您可以将 throw 语句提取到一个函数中:
get("/throwexception", () -> BlowUp());
(snip)
public static void BlowUp()
{
throw new NotFoundException();
});