[C++] 예외처리 한정자 키워드 : noexcept
//예외를 반환하지 않는다.
int func1(int a, int b, int c) noexcept {
...
}
//예외를 반환할 수 있다.
int func2(int a, int b, int c) noexcept(false) {
...
}
예외처리에 관해서 한정자 noexcept를 작성하면 얻는 이점은 다음과 같다.
(1) 예외 처리 여부를 바로 알 수 있다.
(2) Strong exception guarantee (강한 예외 보증)
copy semantics가 아닌 move semantics로 처리한다.
(3) Performance improvement (성능 향상)
해당 함수가 예외처리를 무조건적으로 하지 않는다고 가정하므로
예외를 반환할 수 있는 상황에 대한 고려를 하지 않는다. (여분공간X)
int func1(int a, int b, int c) noexcept {
...
}
//예외를 반환할 수 있다.
int func2(int a, int b, int c) noexcept(false) {
...
}
예외처리에 관해서 한정자 noexcept를 작성하면 얻는 이점은 다음과 같다.
(1) 예외 처리 여부를 바로 알 수 있다.
(2) Strong exception guarantee (강한 예외 보증)
copy semantics가 아닌 move semantics로 처리한다.
(3) Performance improvement (성능 향상)
해당 함수가 예외처리를 무조건적으로 하지 않는다고 가정하므로
예외를 반환할 수 있는 상황에 대한 고려를 하지 않는다. (여분공간X)
댓글
댓글 쓰기