当前位置: 首页 > 知识库问答 >
问题:

处理来自可选映射中方法的异常

谢胤
2023-03-14

我有一个这样的方法

@Override
public Optional<List<Order>> getPendingOrders(AuthDTO authDTO) throws MyException {
    return connector.getConnection(authDTO).map(p->p.getOrders());
}

这里

connector.getConnection(authDTO)
p->p.getOrders() 
public class KException extends Throwable {

    // variables
    public String message;
    public int code;

    // constructor that sets the message
    public KException(String message){
        this.message = message;
    }

    // constructor that sets the message and code
    public KException(String message, int code){
        this.message = message;
        this.code = code;
    }
}
public class MyException extends KException {

    public MyException(String message, int code) {
        super(message, code);
    }
}
unreported exception com.something.exceptions.KException; must be caught or declared to be thrown

我想将这个KException转换为MyException。有没有一个优雅的方法来做这件事?请帮帮忙。

共有1个答案

山森
2023-03-14

正如一些注释所建议的那样,您可以在map操作中捕获异常,然后执行所需的任何进一步逻辑:

return getConnection(authDTO).map(p -> {
        try {
            return p.getOrders();
        } catch (KException e) {
            // perform some other logic
        }
});
 类似资料:
  • 我有以下方法: 在序列化期间调用。 枚举异常扩展了异常 我的控制器方法: 事务类: 在此setter中,引发枚举异常 在调试方法时,我看到它正在从响应EntityExceptionHandler类调用方法而不是我的方法 在抛出EnumException的情况下,我得到400状态代码和空响应正文。 为什么不执行异常处理程序方法? 以下是日志:

  • 我有一个资源类,它本身与内部服务进行对话。此资源充当服务的rest API。服务层可以抛出意外异常,因此资源应该处理那些已处理的意外异常并将其记录下来。我正在使用dropwizard框架,它反过来又使用jersey。事情是这样的。 这里的问题是,我必须对每个REST apiendpoint执行完全相同的异常处理。我可以为这个特定的资源进行某种类型的异常映射,以便将所有的处理逻辑和日志记录放在那里吗

  • 问题内容: 对于servlet生命周期的东西,你们建议如何响应异常… 例如, 我不确定要如何处理上面的运行时异常。我的想法是,如果在这里抛出异常,那么它们的严重性足以完全破坏系统,因此(未处理的)运行时异常 可能还 可以。 我想我问的是什么处理来自servlet上下文侦听器的未经检查的异常? 问题答案: 捕获异常时,您可能需要考虑设置属性以指示遇到错误。这样,如果容器尚未禁用应用程序,则可以让一个

  • 大陆是一个复合物体。结构为: 所以在这个符号中: 这很好,但当我尝试编写通用映射器时, 并通过以下方式调用它 它编译得很好,但不起作用。地图绘制者跳到第二步,说大陆不能投射到这个国家,为什么?在进行映射时应该没有强制转换,如何修复它?

  • 但这不是有效的语法。 我是否必须分别检查每一个密钥才能处理无的情况?

  • 在Spring的上个版本中,用户需要在web应用的上下文中定义一个或多个的HandlerMappingbean,用以将进入容器的web请求映射到合适的处理器方法上。允许在控制器上添加注解后,通常你就不必这么做了,因为RequestMappingHandlerMapping类会自动查找所有注解了@RequestMapping的@Controller控制器bean。同时也请知道,所有继承自Abstra