java - 在 java 中使用 lambda 表达式引发自定义异常
问题描述
我环顾四周,但似乎找不到正确的答案。因为我有一个项目并且想要使用 lambda 表达式,所以我正在尝试减少我的代码。我是 lambda 的新手并且仍在练习它,我一般遇到 lambda 的“异常处理”,但是,对于我的具体问题,我似乎找不到。
我有一个完整的项目要修复,但这里有一个我想减少的代码示例。
代码:
for (Customer allCustomers : cust.getAllCustomers()) {
if (customer.getEmail().equals(allCustomers.getEmail()))
throw new CustomerAlreadyExists(
"ERROR: Cannot add customer. email is already in use.");
}
我试过的:
cust.getAllCustomers()
.stream()
.filter(x -> x.getEmail().equals(customer.getEmail())
.forEach(throw new CustomerAlreadyExists(
"ERROR: Cannot add customer. email is already in use."));
我的问题似乎是抛出异常。(不会编译)否则我认为表达式很好。有没有办法用一个衬里抛出异常?
谢谢。仍然在学习。
解决方案
你可以这样做:
cust.getAllCustomers().stream()
.filter(x -> x.getEmail().equals(customer.getEmail())
.forEach(s -> {throw new CustomerAlreadyExists("ERROR: Cannot add customer. email is already in use.");});
推荐阅读
- jquery - 在具有相同类的多个可放置 div 上拖动图像
- r - 闪亮应用程序中的图像输出
- angular - 使用 Firebase 存储和 Firebase 插入/更新用户个人资料图片
- javascript - 始终显示自动完成列表,即使搜索不匹配
- asp.net-mvc - MVC 中的 Kentico 11 MFA
- python - 为什么 AbstractBaseUser 放在一个单独的模块中?
- javascript - 等价于 ajax 成功中 laravel 的 return view('path',compact('data1', 'data2', 'data3' ))
- nativescript - 使用 sudo 时未安装 NativeScript cocoapods
- mfc - 如何让一个窗口总是出现在其他窗口之上?
- android - ?android:attr/colorPrimary 与 ?attr/colorPrimary