예외(Exception)에 대해서 알아보자
정의는 프로그램 실행동안 발생할 수 있는 예외적인 상황에서 발생하는 Exception 객체
종류에는 2가지로 나누어질 수 있다
-> Dart가 사전정의한 예외. 자주 발생하는 예외로는 아래와 같이 있다
-> DeferredLoadException - 라이브러리 사용시점에 라이브러리가 로드 되지 않았을떄
-> FormatException - 타입이 서로 안맞을때(int를 String에 넣는다거나..)
-> IOException - 입출력 관련 동작중 발생하는 예외(FIleDecriptor, socket, protocol등등..)
-> OSError - 운영체제 레벨에서 발생하는 예외, 운영체제 관련해서 에러코드를 가지고 있다
-> TimeoutException - 비동기 결과 돌릴때 시간이 넘 오래걸리거나 할때 발생하는 예외
-> 사용자가 정의한 예외
-> 위 예외에 없을때 사용자가 정의한 모든 예외
-> Exception클래스를 상속받아서 아래와 같이 예외 클래스를 만들면 됨.
// 예외 클래스 생성
class AgeException implements Exception {
final String message;
AgeException(this.message);
void printAge(int age){
if (age < 0){
throw AgeException(null);
}
}
@override
String toString() => messsage ?? 'AgeException 발생';
}
// 실제 예외 발생 코드
void main(){
try {
printAge(-8);
} catch (e){
print(e);
}
}
구문을 좀더 자세히 살펴보면
-> try - 시도하고자 하는 코드
-> catch - 발생한 예외를 잡는 코드
-> on - catch와 같이 쓰이며 try에서 발생하는 특정타입의 예외를 다루기 위해 사용
on IOException catch(e){
...
}
-> finally - 예외 발생과 상관없이 무조건 마지막에 실행되는 구문
finally{
...
}
4개로 나누어진다
마지막으로 throw가 있는데 특정 exception을 발생시키는 구문이다
throw [Exception이름];
위와 같이 예외를 발생 시킬수 있다
'Programming > Flutter' 카테고리의 다른 글
[내일배움] 플러터 기본 폴더 구성 (0) | 2024.11.11 |
---|---|
[내일배움] dart 심화 문법 - 7 (비동기 프로그래밍) (0) | 2024.11.01 |
[내일배움] dart 심화 문법 - 5 (Class상속) (0) | 2024.10.31 |
[내일배움] dart 심화 문법 - 4 (Class) (0) | 2024.10.31 |
[내일배움] dart 심화 문법 - 3 (Functional Programming) (0) | 2024.10.30 |