首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理多路异常

如何处理多路异常
EN

Stack Overflow用户
提问于 2012-11-28 12:42:42
回答 2查看 6.7K关注 0票数 9

我正在处理火花框架,并试图理解以统一的方式处理多个路由的异常的最佳方法。

目前,我有许多所有按照以下方式处理异常的路由:

代码语言:javascript
运行
复制
...
catch (final Exception e) {
    ...
    response.status(418);
    return e.getMessage();
}
...

这还需要改进很多地方,主要是异常逻辑在它们之间重复。我知道可以通过重构来改进它,但我想知道是否有类似于Spring中的ExceptionHandler机制的地方,在抛出特定异常时,您可以执行一个操作,例如:

代码语言:javascript
运行
复制
@ExceptionHandler(Exception.class)
public void handleException(final Exception e, final HttpServletRequest request) {
    ...executed for the matching exception...
}

那么,是否存在用于异常处理的火花式机制?我查过文件了,结果很短。如果没有,我将继续我的重构计划。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 19:54:44

您可以处理这样的异常:

代码语言:javascript
运行
复制
get("/throwexception", (request, response) -> {
    throw new NotFoundException();
});

exception(NotFoundException.class, (e, request, response) -> {
    response.status(404);
    response.body("Resource not found");
});

示例摘自火花文档

票数 15
EN

Stack Overflow用户

发布于 2014-02-01 19:24:56

我一直在处理这个问题。这就是我想出来的。它将需要调整你的环境。

代码语言:javascript
运行
复制
public class ExceptionHandler extends MustacheTemplateHandler
{
private final WrappedHandler inter;

public abstract static class WrappedHandler
{
    public abstract Object handle(Request req, Response res);       
}

public static ExceptionHandler wrap(String path, WrappedHandler internal)
{
    return new ExceptionHandler(path, internal);
}

private ExceptionHandler(String path, WrappedHandler internal) 
{
    super(path);
    inter = internal;
}

@Override
public Object handle(Request req, Response res) 
{
    try 
    {
        return inter.handle(req, res);
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return new ModelAndView(e, "errors");
    }
}
}

然后(使用导入静态):

代码语言:javascript
运行
复制
    get(wrap("/download", new DownloadHandler()));
    post(wrap("/upload", new UploadHandler()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13605334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档