컴퓨터 공학/C++
C++ 함수 내 람다 함수를 통해 코드 정리
혼새미로
2019. 11. 14. 12:51
반응형
#include <iostream>
using namespace std;
void test() {
int a = 1;
int b = 2;
auto func1 = [&]() {
if (a == 1) {
throw std::runtime_error("a = 1");
}
cout << "func1 success" << endl;
};
auto func2 = [&]() {
if (b == 2) {
throw std::runtime_error("b = 2");
}
cout << "func2 success" << endl;
};
try {
func1();
func2();
}
catch (std::exception& ex) {
cout << "test failed - " << ex.what() << endl;
return;
}
}
void main() {
test();
}
하나의 작업을 수행하는 함수 내에서도 다양한 추상화 수준의 코드들이 존재할 수 있기 때문에 이들을 다시 람다 함수로 분리하여 코드 가독성을 높이고, 람다 함수들을 try-catch 문에서 한번에 실행함으로써 오류 처리와 가독성을 높일 수 있습니다.
반응형