Spring/JAVA
[Java8 Lambda] Exception Handling in Lambdas (try - catch)
alsruds
2023. 10. 13. 17:14
🤹♂️Java Brains 강의🤹♂️
https://www.youtube.com/playlist?list=PLqq-6Pq4lTTa9YGfyhyW2CqdtW9RtY-I3
💡 someNumbers 배열 원소들을 key 값으로 나눈 나머지 출력하기 💡
· key 값이 2일 때 출력 (정상)
· key 값이 0일 때 출력 (예외 상황)
· Code
import java.util.function.BiConsumer;
public class Main {
public static void main(String[] args) {
int[] someNumbers = {1,2,3,4};
int key = 2;
process(someNumbers, key, wrapperLambda((v, k) -> System.out.println(v / k)));
}
private static void process(int[] someNumbers, int key, BiConsumer<Integer, Integer> consumer) {
for (int i : someNumbers) {
consumer.accept(i, key);
}
}
// 예외 상황 처리
private static BiConsumer<Integer, Integer> wrapperLambda(BiConsumer<Integer, Integer> consumer) {
return (v, k) -> {
try {
consumer.accept(v, k);
} catch (ArithmeticException e) {
System.out.println("Exception caught in wrapper lambda");
}
};
}
}