내일배움캠프 12일차_250930
<오늘 하루 일정>
오전
9:00~13:00 코드팩토리 Dart 강의
13:00~14:00 점심시간
오후
14:00~16:00 코드팩토리 Dart 강의
16:00~17:00 B반 튜터님 QnA세션
17:00~18:00 Dart 강의 3-1 일부
18:00~19:00 저녁시간
19:00~21:00 네트워킹
1) Exception 클래스를 상속받아서 구현
- DefferedLoadExcption : 필요한 시점에 로드되도록 설정한 라이브러리가 로드되지 못했을 떄
DefferedLoadExcption(String message) message - 예외에 대한 설명 써주면 됨
- FormatException : 데이터가 처리 가능한 형태가 아니어서 데이터를 처리하기 어려울때
FormatException([String message = “ “, dynamic source, int? offset])
message - 예외에 대한 설명, source = 예외가 발생한 원인
[예시]
String invalidNumber = "abc";
int result = int.parse(invalidNumber);
//int.parse 문자열을 정수형으로 바꿔줌, 문자열을 정수로 바꿀 수 없으면 FormatException 발생
- IOException : 입출력 관련 동작을 하는 중에 발생하는 오류
IOException()
- FileSystemException : 파일에 접근할 수 없을 때 발생
[참고]
HttpException
ProcessException
SignalException
SocketException
StdoutException
TlsException
WebSocketException
- OSError : 운영체제 레벨에서 발생하는 오류, 운영체제로 부터 받은 오류에 대한 정보를 들고 있음
OSError([String message = “ “, int errorCode = noErrorCode])
Message에는 운영체제가 제공하는 예외에 대한 설명 들어감
errorCode에는 운영체제가 제공하는 오류코드 들어감
- TimeoutException : 비동기 결과를 기다리는 동안 특정시간이 초과되었을 때 발생
TimeoutException(String? Message, [Duration? duration])
Message : 시간 초과가 발생항 원인에 대한 설명
Duration : 초과된 시간
- Throw 예외를 발생시키는 것
Try catch 예외를 다룸
예외에 사용하는 키워드
목적에 따라 2가지로 나눔
발생한 예외를 처리하기 위한 경우 - try, catch, on, finally 사용
Int ~ return 5;
String ~ return ‘문자’;
void main() {
print('------------Idol-----------');
Idol apink = Idol(name: '에이핑크', membersCount : 5);
apink.sayName();
apink.sayMembersCount();
print('-----------BoyGroup---------');
BoyGroup bts = BoyGroup('BTS', 7);
bts.sayName();
bts.sayMembersCount();
bts.sayMale();
print('-----------GirlGroup----------');
GirlGroup redvelvet = GirlGroup('레드벨벳', 5);
redvelvet.sayName();
redvelvet.sayMembersCount();
redvelvet.sayfemale();
print('----------Type Comparison---------');
print(apink is Idol);
print(apink is BoyGroup);
print(apink is GirlGroup);
}
// 부모클래스
class Idol{
String name;
int membersCount;
Idol({
required this.name,
required this.membersCount,
});
void sayName(){
print('저는 ${this.name}입니다.');
}
void sayMembersCount(){
print('${this.name}은 ${this.membersCount}명의 멤버가 있습니다.');
}
}
// 자식클래스1
class BoyGroup extends Idol{
BoyGroup(
String name,
int membersCount,
): super(
name: name,
membersCount: membersCount,
);
void sayMale(){
print('저는 남자 아이돌입니다.');
}
}
// 자식클래스2
class GirlGroup extends Idol {
GirlGroup(
String name,
int membersCount)
: super(
name: name,
membersCount: membersCount,
);
void sayfemale() {
print('저는 여자 아이돌입니다.');
}
}
댓글
댓글 쓰기