[ Dart&Flutter ] Dart 에러 처리(예외 처리) 심화 학습

Dart 에러 처리(예외 처리) 심화 학습입니다.  개념 설명 → 실습 예제 2개 → 해설 & 출력 예시로 설명 및 정리하였습니다. Dart 예외처리, Flutter 예외처리 하실때 도움이 되시길 바랍니다 .




Dart 에러 처리(예외 처리) 심화 학습
Dart 에러 처리(예외 처리) 심화 학습



🚨 Dart 에러 처리(예외 처리) 심화 학습

프로그램이 갑자기 멈추지 않도록! 똑똑하게 문제를 처리하는 방법


 

✅ 1. 예외 처리 기본 (try, catch, finally)

📘 개념 설명

  • 프로그램을 실행하다가 문제가 생기면(에러) 그냥 멈춰버려요.

  • 이럴 때 try - catch를 사용해서 에러를 안전하게 처리할 수 있어요.

  • finally는 에러가 나든 안 나든 무조건 실행되는 부분이에요.




🏆 실습 예제 1: 0으로 나누기 에러 처리

void main() {
  try {
    int result = 10 ~/ 0;
    print(result);
  } catch (e) {
    print('에러 발생: $e');
  } finally {
    print('프로그램 종료');
  }
}

✅ 출력:

에러 발생: IntegerDivisionByZeroException
프로그램 종료






🏆 실습 예제 2: 문자열을 숫자로 변환할 때 에러 처리

void main() {
  String input = 'abc';

  try {
    int number = int.parse(input);
    print(number);
  } catch (e) {
    print('숫자로 변환할 수 없습니다!');
  }
}

✅ 출력:

숫자로 변환할 수 없습니다!




✅ 2. 사용자 정의 예외 만들기

📘 개념 설명

  • Dart에서는 내가 직접 에러 타입을 만들어서 사용할 수 있어요.

  • 상황에 맞는 에러 메시지를 주고, 프로그램 흐름을 제어할 수 있습니다.




🏆 실습 예제 1: 직접 예외 클래스 만들기

class NegativeNumberException implements Exception {
  String errorMessage() => '음수는 입력할 수 없습니다!';
}

void checkNumber(int n) {
  if (n < 0) throw NegativeNumberException();
}

void main() {
  try {
    checkNumber(-5);
  } catch (e) {
    print(e.errorMessage());
  }
}

✅ 출력:

음수는 입력할 수 없습니다!





🏆 실습 예제 2: 나이 검증 예외 만들기

class AgeLimitException implements Exception {
  String toString() => '나이는 0세 이상이어야 합니다!';
}

void registerUser(int age) {
  if (age < 0) throw AgeLimitException();
}

void main() {
  try {
    registerUser(-1);
  } catch (e) {
    print(e);
  }
}

✅ 출력:

나이는 0세 이상이어야 합니다!




✅ 3. throw 키워드 활용법

📘 개념 설명

  • throw는 “여기서 에러를 발생시켜라!” 라고 컴퓨터에게 알려주는 명령이에요.

  • 특정 상황에서 일부러 에러를 던져서 잘못된 입력이나 상태를 막을 수 있어요.




🏆 실습 예제 1: 비밀번호 체크

void checkPassword(String password) {
  if (password.length < 6) {
    throw '비밀번호가 너무 짧습니다!';
  }
}

void main() {
  try {
    checkPassword('123');
  } catch (e) {
    print(e);
  }
}

✅ 출력:

비밀번호가 너무 짧습니다!




🏆 실습 예제 2: 상품 재고 확인

void buyProduct(int stock) {
  if (stock == 0) {
    throw Exception('재고가 없습니다!');
  } else {
    print('구매 완료!');
  }
}

void main() {
  try {
    buyProduct(0);
  } catch (e) {
    print(e);
  }
}

✅ 출력:

Exception: 재고가 없습니다!





🎓 마무리 요약

개념

설명

try - catch

에러가 나도 프로그램이 멈추지 않게 처리

finally

무조건 실행되는 부분

사용자 정의 예외

직접 만드는 나만의 에러 타입

throw

의도적으로 에러 발생시키기





💡 실전에서 이렇게 활용해요!

  • 잘못된 입력값이 들어왔을 때 알림 주기

  • 서버 통신 에러 처리

  • Flutter 앱에서 사용자에게 에러 메시지 보여주기

  • 비동기 작업 중 에러 관리


댓글 쓰기