로딩
요청 처리 중입니다...

try-catch를 무작정 감싸면 안 되는 이유 (2)

 try-catch를 무작정 감싸면 안 되는 이유 (2)

UI 스레드와 async/await에서 더 위험해지는 순간 이전 글에서 "try-catch를 무작정 감싸는 건 문제를 숨기는 것에 가깝다"는 이야기를 했습니다. 그런데 이 습관은 UI 애플리케이션, 특히 WPF + async/await 환경에서는 더 위험해집니다.

여기서는 예외가 단순한 오류가 아니라 흐름 제어에 가까운 역할을 하기 때문입니다. 1. async void + try-catch = 조용한 실패 WPF 이벤트 핸들러는 보통 이런 형태입니다. private async void Button_Click(object sender, RoutedEventArgs e) { try { await LoadDataAsync(); } catch (Exception) { // 일단 막자 } } 겉보기에는 안전해 보입니다. 하지만 예외를 그냥 삼켜버리는 순간, 문제는 이렇게 바뀝니다.

데이터는 일부만 로드됨 상태는 갱신되지 않음 사용자에게는 아무 일도 안 일어난 것처럼 보임 즉, 실패가 “조용해...