본문 바로가기
Dart & Flutter

try-catch만 쓰면 안되는 이유

by 박길치 2025. 3. 21.

 

개발을 하다보면 try-catch를 이용해 에러를 잡곤 한다.

그러나 try-catch만으로는 부족하다.


try {
  int result = await DatabaseHelper.instance.insertItem(newItem);

  if (result > 0) {
    _showSuccessDialog();
  } else {
    _showFailDialog();
  }
} catch (e) {
  print("에러 발생: $e");
  _showFailDialog();
}

 

데이터베이스에 newItem을 넣는 과정을 챗GPT 시켜서 짜게 했는데 이런 코드를 주었다.

어차피 try-catch에서 에러를 잡을텐데 왜 굳이 result > 0을 확인하는지 궁금해졌다.

이유를 물어보니 다음과 같이 답을 주었다.

if (result > 0) 체크가 필요한 이유
1. 예외가 발생하지 않아도 실패할 수 있음
	예를 들어, INSERT 문이 실행됐지만 데이터베이스에 아무것도 추가되지 않을 가능성이 있어.
2. insert() 메서드는 실패 시 0을 반환할 수 있기 때문에 확인이 필요함.
	성공과 실패를 명확하게 구분 가능

✅ 결론
try-catch는 에러가 발생한 경우를 처리하는 거고,
if (result > 0)는 정상적으로 실행됐지만 기대한 결과가 나왔는지 확인하는 용도임.
🚀 즉, 예외가 발생하지 않았더라도 삽입이 성공적으로 이루어졌는지 확인하려면 if (result > 0)를 추가하는 게 안전함!

 

 

오호... 에러 없이 데이터 삽입을 실패할 수도 있다는 경우를 생각 못했다.

에러 핸들링은 잘 해두면 나쁠게 없기에... 지식+1 된 기분이다.

'Dart & Flutter' 카테고리의 다른 글

flutter로 캘린더 만들기  (0) 2021.12.25
플러터 apk로 만드는 법  (0) 2021.07.14
Flutter?  (0) 2021.07.12