코드 그라데이션
후발대 20일차 전체 코드 본문
후발대수업_20.
예외처리 (CustomException, Throws), 퀴즈, Thread
진행 내용 (수업자료)
실습코드
_06_CustomException
package com.sparta.hbd04.prac18;
public class _06_CustomException {
public static void main(String[] args) {
int age =17; //만 17세
try {
if(age < 19) {
// System.out.println("만 19세 미만에게는 판매하지 않습니다.");
throw new AgeLessThan19Exception("만 19세 미만에게는 판매하지 않습니다.");
} else {
System.out.println("주문하신 상품 여기 있습니다. ");
}
} catch (AgeLessThan19Exception e) {
System.out.println("조금더 성장한 뒤에 오세요.");
} catch (Exception e) {
// e.printStackTrace();
System.out.println("모든 예외를 처리합니다.");
}
}
}
class AgeLessThan19Exception extends Exception {
public AgeLessThan19Exception(String message) {
super(message);
}
}
_07_Throws
package com.sparta.hbd04.prac18;
import java.io.FileWriter;
import java.io.IOException;
public class _07_Throws {
public static void main(String[] args) {
try {
writeFile();
} catch (IOException e) {
// throw new RuntimeException(e);
e.printStackTrace();
System.out.println("메인메소드에서 해결할게요");
}
}
public static void writeFile() throws IOException {
// try {
// FileWriter writer = new FileWriter("test.txt");
// throw new IOException("파일 쓰기에 실패했어요.");
// } catch (IOException e) {
//// throw new RuntimeException(e);
// e.printStackTrace();
// System.out.println("writeFile 메소드 내에서 자체 해결했어요");
// }
FileWriter writer = new FileWriter("test.txt");
throw new IOException("파일 쓰기에 실패했어요.");
}
}
Prac18 (예외처리 퀴즈 실습)
package com.sparta.hbd04.prac18;
// 에러코드
// 0 (에러 없음), 1 (판매 시간 아님), 2 (매진
// 0 인 경우? 상품 구매를 완료하였습니다.
// 1 인 경우? 상품 구매 가능 시간이 아닙니다. / 상품 구매는 20시부터 가능합니다.
// 2 인 경우? 해당 상품은 매진되었습니다. / 다음 기회에 이용해주세요.
public class Prac18 {
public static void main(String[] args) {
int errorCode = 2;
try {
if (errorCode == 0) {
System.out.println("상품 구매를 완료하였습니다.");
} else if (errorCode == 1) {
throw new NotOnSaleException("상품 구매 가능 시간이 아닙니다.");
} else if (errorCode ==2) {
throw new SoldOutException("해당 상품은 매진되었습니다.");
}
} catch (NotOnSaleException e) {
System.out.println(e.getMessage());
System.out.println("상품 구매는 20시부터 가능합니다.");
} catch (SoldOutException e) {
System.out.println(e.getMessage());
System.out.println("다음 기회에 이용해 주세요. ");
}
}
}
class NotOnSaleException extends Exception {
public NotOnSaleException(String message) {
super(message);
}
}
class SoldOutException extends Exception {
public SoldOutException(String message) {
super(message);
}
}
-----------
쓰레드
package com.sparta.hbd04.prac01.prac20;
import com.sparta.hbd04.prac01.prac20.clean.CleanThread;
public class Thread {
public static void main(String[] args) {
// 하나의 프로세스 (Process)
// 쓰레드 (Thread)
// 1 3 5 7 9
// 2 4 6 8 10
// cleanByself();
CleanThread cleanThread = new CleanThread();
cleanThread.run(); // 직원 청소
clean.start();
cleanByBoss(); // 사장 청소
}
public static void cleanByself() {
System.out.println("-- 혼자서 청소 시작 --");
for (int i = 1; i <= 10; i++) {
System.out.println("(혼자) " + i + " 번방 청소 중");
}
System.out.println("-- 혼자 청소 끝 --");
}
public static void cleanByBoss() {
System.out.println("-- 사장 청소 시작 --");
for (int i = 1; i <= 10; i += 2) {
System.out.println("(사장) " + i + " 번방 청소 중");
}
System.out.println("-- 사장 청소 끝 --");
}
}
clean pkg > CleanThread
package com.sparta.hbd04.prac01.prac20.clean;
public class CleanThread extends Thread {
public void run() {
System.out.println("-- 직원 청소 시작 (Thread) --");
for (int i = 2; i <= 10; i += 2) {
System.out.println("(직원) " + i + " 번방 청소 중 (Thread)");
}
System.out.println("-- 직원 청소 끝 (Thread) --");
}
}
728x90
'Java > 후발대' 카테고리의 다른 글
예외처리 Quiz (0) | 2023.03.03 |
---|---|
후발대 20일차 설명 추가 (0) | 2023.03.02 |
후발대 19일차 설명 추가 (0) | 2023.02.24 |
후발대 19일차 전체 코드 (0) | 2023.02.24 |
과제 2주차 내용 정리 (0) | 2023.02.22 |
Comments