태그: 에러처리
9편
-
JavaScript 비동기 디버깅 실전 사례 | Promise 체인 에러 추적하기
간헐적으로 발생하던 Unhandled Rejection이 에러 핸들러 누락 때문이었음을 추적한 사례입니다. 사라지는 스택 트레이스를 복원하고, async/await 전환, 전역 핸들러, Express 에러 미들웨어, Sentry 연동으로 해결합니다.
-
Swift 에러 처리 | do-catch, throw, Result
Error 프로토콜로 에러 타입을 정의하고 throw, throws, do-catch, try?와 try!의 차이를 설명한 뒤 네트워킹, 파일 I/O, JSON 파싱, 입력 검증에서 쓰는 실전 패턴을 보여줍니다. Result 타입과 async/await 환경의 에러 처리도 다룹니다.
-
Rust 에러 처리 | Result, Option, ? 연산자
Rust에서 Result와 Option을 다루는 메서드와 체이닝, ? 연산자로 에러를 전파하는 법, panic!과 unwrap·expect를 써도 되는 경우, 커스텀 에러 타입과 에러 변환 패턴을 파일 파싱·입력 검증 예제로 설명합니다.
-
JavaScript 에러 처리 | try-catch, Error 객체, 커스텀 에러
try-catch-finally 흐름과 TypeError·RangeError 같은 내장 Error 타입, Error를 상속한 커스텀 에러 클래스, Promise와 async/await의 비동기 에러 처리, 에러 래퍼·재시도·로깅 패턴을 API 클라이언트 예제로 설명합니다.
-
Python 예외 처리: try-except, raise, 커스텀 예외
try-except의 기본과 else·finally가 각각 언제 실행되는지, raise로 예외를 던지고 다시 올리는 방법, Exception을 상속한 커스텀 예외 설계를 코드로 설명합니다. 안전한 파일 처리와 재시도 로직 예제로 실제 적용 방식도 보여줍니다.
-
C++ 예외 처리: try/catch/throw, 예외 안전성, 언제 예외를 쓰나
예외를 던질지 에러 코드를 반환할지 결정하는 기준부터, 예외를 참조로 잡아야 하는 이유, 소멸자에서 던지면 안 되는 이유, RAII로 예외 안전성을 지키는 법, 스택 풀기와 noexcept의 실제 효과까지 C++ 예외 처리를 코드로 짚습니다.
-
[[nodiscard]]로 반환값 무시 막기: 에러 코드, RAII 타입, 사유 메시지, Clang-Tidy 검증
C++ [[nodiscard]] 정리. 반환값을 무시해서 생기는 버그, 에러 코드와 RAII 타입에 붙이는 법, C++20 사유 메시지와 생성자 적용, Clang-Tidy 검증, C++26 std::ignore 논의를 다룹니다.
-
[Go 2주 완성 #05] Day 8~9: 예외 처리의 새로운 접근 - try-catch는 잊어라
try-catch가 없는 Go에서 에러를 값으로 반환하고 if err != nil로 즉시 처리하는 방식을 C++ 예외와 비교합니다. RAII 대신 쓰는 defer의 실행 순서와 평가 시점, fmt.Errorf의 %w 래핑과 errors.Is·As, panic과 recover의 쓰임새를 다룹니다.
-
C++ 네트워크 에러 처리: errno 해석, 타임아웃, 지수 백오프 재시도, 서킷 브레이커, EINTR
프로덕션에서 간헐적으로 연결이 끊길 때 errno를 어떻게 해석하고 어떤 에러만 재시도할지 판단하는 법을 다룹니다. SO_RCVTIMEO·select·논블로킹 connect 타임아웃 비교, 지터를 섞은 지수 백오프, 서킷 브레이커, EINTR과 부분 send·recv 처리도 설명합니다.