Dart 에러 처리(예외 처리) 심화 학습입니다. 개념 설명 → 실습 예제 2개 → 해설 & 출력 예시로 설명 및 정리하였습니다. Dart 예외처리, Flutter 예외처리 하실때 도움이 되시길 바랍니다 .
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 앱에서 사용자에게 에러 메시지 보여주기
-
비동기 작업 중 에러 관리
댓글 쓰기