在Java8中的optional中引发自定义异常
我有一段代码,我想在没有找到资源的情况下抛出一个异常在Java8中的optional中引发自定义异常,java,java-8,optional,Java,Java 8,Optional,我有一段代码,我想在没有找到资源的情况下抛出一个异常 Menu menu = menuService.findById(addMenuAmount.getMenuId()) .orElseThrow(com.tdk.web.exception.ResourceNotFoundException(“menu " + addMenuAmount.getMenuId() + " not found ")
Menu menu = menuService.findById(addMenuAmount.getMenuId())
.orElseThrow(com.tdk.web.exception.ResourceNotFoundException(“menu " +
addMenuAmount.getMenuId() + " not found "));
但我有一个编译错误:
com.tdk.web.exception cannot be resolved to a type
尝试此操作并确保com.tdk.web.exception.ResourceNotFoundException可访问
Menu menu = menuService.findById(addMenuAmount.getMenuId())
.orElseThrow(() -> new com.tdk.web.exception.ResourceNotFoundException("menu " +
addMenuAmount.getMenuId() + " not found "));
注意lambda->and quotes菜单。尝试此操作,并确保com.tdk.web.exception.ResourceNotFoundException是可访问的
Menu menu = menuService.findById(addMenuAmount.getMenuId())
.orElseThrow(() -> new com.tdk.web.exception.ResourceNotFoundException("menu " +
addMenuAmount.getMenuId() + " not found "));
注意lambda->and quotes菜单。可选。orElseThrow接受提供/创建异常的供应商。您似乎正在直接传递异常。orElseThrow期望供应商作为其唯一参数。可以使用lambda表达式返回要抛出的异常。供应商的唯一方法不接受任何参数,在这种情况下,希望您返回异常或子类。->新建YourException就足够了。可选。orElseThrow接受提供/创建异常的供应商。您似乎正在直接传递异常。orElseThrow期望供应商作为其唯一参数。可以使用lambda表达式返回要抛出的异常。供应商的唯一方法不接受任何参数,在这种情况下,希望您返回异常或子类。->新的例外就足够了。