일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #message #queue #sns구독
- aws #아키텍트 #과정 #vpc #인프라 구축 #ec2 #instance #launch #template #생성 #ami #amazone #machine #image
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #auto scailling #lauch template #ec2 instace #private #subnet
- aws #아키텍트 #과정 #vpc #인프라 구축 #aurora #database #rds #rdbs #load #balancer #web #page #haproxy
- 비트 #바이트 #이진수
- 쓰레드 #쓰레드풀 #프로세스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #trigger #python3.9 #패키지 #
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #round robin #process #high ability #auto scailling #app server #launch template
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #고가용성 #테스트 #alb #application #load balancer #application
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #replica #복제본 #aurora #database #고가용성
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #alb #application #load #balancer #security #group #igw #ec2 #vpc #virtual #private #cloud
- 썸네일 #이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #db #장애조치 #reand only #replica #events
- aws #아키텍트 #과정 #vpc #인프라 구축 #amazon sns #server #less #architecture
- 업로드 #lambda #함수 #모바일 이미지 #썸네일 이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 #스토리지 #isci #이미지 #업로드
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 스토리지 #objects storage #events #upload #알림
- aws #아키텍트 #과정 #vpc #인프라 구축 #t.g #target group #alb #application #load #balancer #web #server
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- aws #아키텍트 #과정 #vpc #인프라 구축 #second nat #gateway #routing table #route53 #고가용성 #private subnet #
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #endpoint #cloudwatch #monitoring
- aws #아키텍트 #과정 #vpc #인프라 구축 #alb #load balancer #t.g #target #group #haproxy #high ability #db #replica #region
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 자바 4강 예외처리 본문
자바는 객체지향언어
객체지향이란 현실세계와 비슷한 구조라고 생각하면된다.
현실 세계 기반으로 생각을 한다는 가정하에
우리는 수많은 선택에 놓이고 하루에 사람이 600번이상의 선택을한다고 한다.
그런 만큼 우리는 수많은 상황에 놓이게 될 때
선택을 어느정도는 예상해볼 수 있다.
Error(오류) 와 Exception(예외)
오류는 일반적인 상황에서 해결이 불가능하다.
이미 구현되어 실행중일 프로그램에 오류가 발생한다? 종료해야된다.
오류가 발생함으로
왜 발생했는지를 알고 대응을 해야한다.
Checked Exception(확인된 예외)와 Unchecked Exception(확인되지 않은 예외)
3을 입력하라고 분명 명시를 했는데 Client가 실수로 4를 입력할 수 있지않나?
(충분히 생각할 수 있다)
그렇게 확인해서 예외처리를 진행을 해야하고?
안그러면 에러가 발생하여 종료하게된다.
컴파일이란
프로그래밍언어를 작성한 코드가 컴퓨터가 이해할 수 있는 언어로 변환되는것
프로그램이란
컴파일된 코드(파일)는 컴퓨터가 이해하고 실행 시키는 모든것
컴파일에 에러가 발생한다면
기초적인 문제로 들어가보면 좋다.(문법문제)
사람으로 생각해보았을 때
책을 읽다가 갑자기 이집트어가 나온다면 읽을 수 있나?
문법에 맞게 고치면되는것이다.
런타임 에러(404)
Client가 프로그램 실행 도중에 맞닥뜨리게 되는 예외
확인된 예외(Checked Exception)
예외를 충분히 고려해볼 수 있음에도 불구하고
예외처리를 하지않아서
고객이 프로그램 사용중에 종료를 하게 할것인가?
책임은 개발자 몫이다.
확인되지 않은 예외(Unchecked Exception)
프로그램 실행 중에 확인되는 예외이다.
예외처리가 반드시 필요하지는 않다.
예외정의
public class Exam1 extends Exception{
public Exam1(){
super("위험한 행동을 하면 예외처리를 해야한다");
}
}
public class Exam1 extends Exception{
private final Boolean just = true;
//throws 던지다
public void thisMehthodIsDangerous() throws Exam1{
if(just){
throw new Exam1();
}
}
public Exam1(){
super("위험한 행동을 하면 예외처리를 해야한다");
}
throws
메서드 이름 뒤에 붙는다.
이 메서드가 어떤 예외사항을 던질 수 있는 지 알려주는 예약어
여러 종류의 예외 사항을 적을 수 있다.
throw
메서드 안에서 실제로 예외객체를 던질 때 사용하는 예약어
실제로 뭘 던질것인지를 정의하고 사용해야한다.
사용 후 종료된다.
예외처리를 할 때 알고있어서 예외처리를 하지 않았나?
그렇다면 고객에게 미리 알려주어 위험하다는것을 인지시키고 프로그램을 종료하지않게 하면된다.
public class Exam1 extends Exception{
private final Boolean just = true;
OurClass ourClass =new OurClass();
//throws 던지다
public static void main(String[] args) {
try{
//시도
ourClass.thisMethodIsDangerous();
}catch(OurBadException e){
//2.예외 발생 후 handling
System.out.println(e.getMessage());
}finally {
//3. 예외 발생 여부 상관없이 실행시키는 코드
System.out.println("우리는 방금 예외를 처리하였습니다.");
}
}
위험 감지했다면
try 시도한다{
일단 그래도 실행시킬 메소드
}
catch 잡는다 {
중괄호 안에 try하다가 예외가 났다를 알려준다
)
finally 마침내{
무조건 알려주고 종료
}
예외 클래스 이해
문제에 직면하면
할 수 있나(Exception)? 못하나(Erro)?
정의
결국은 문제를 추상화(생각하고)
일반화(풀어보고, Error, Exception)
구체화(Checked Exception, Unchecked Exception)
자바의 Throwable Class
Exception클래스 구조
수많은 에러와, 예외처리
Chained Exception(연결된 예외)
예외는 또 다른 예외를 유발할 수 있다.
문제는 또다른 문제를 야기할 수 있는것
Checked Exception을 Unchedcked Exception으로 Wrapping한다.
public class Exam3 {
public static void main(String[] args) {
try {
//예외 생성
NumberFormatException ex = new NumberFormatException("가짜 예외 이유");
//initCausse() -> 지정 예외를 원인 예외로 등록하는 메소드
//원인 예외 설정(지정 예외를 원인 예외로 등록한다)
ex.initCause(new NullPointerException("진짜 예외 이유"));
//throw
throw ex;
}catch(NumberFormatException ex){
//예외 로그를 출력
ex.printStackTrace();
//예외 원인 조회 후 출력
ex.getCause().printStackTrace();
}
//cheked excpption을 감싸서 unchecked exception 안에 넣기
throw new RuntimeException(new Exception("이것이 진짜 예외 이유"));
}
}
}
예외 복구하기
public String getDataFromAnotherServer (String dataPath){
try{
return anotherServerClient.getData(dataPath).toString();
}catch(GetDataException e){
return defaultData;
}
예외처리 회피하기
public void someMethod() throw Exception{.....}
public void someIrresponsibleMethod() throw Exception{
this.someMethod();
}
예외 전환하기
public void someResponsibleMethod() throws MoreSpecificException{
try{
this.someMethod();
}catch(IOException e) {
throw new MoreSpecificException(e.getMessage());
}
}
https://hs-backend.tistory.com/58
스파르타 코딩클럽 부트캠프 (Java 문법 4장)
오류(Error) 일반적으로 회복이 불가능한 문제이다.시스템 레벨에서 아니면 주로 환경적인 이유로 발생한다.코드 문제로 발생하는 경우도 있으나 발생한다면 회복이 불가능하다.예외(Exception)
hs-backend.tistory.com
'Java' 카테고리의 다른 글
스파르타 부트캠프 Java 제네릭(Generics) (0) | 2024.05.25 |
---|---|
스파르타 부트캠프 자바 5강 쓰레드 상태와 제어 (0) | 2024.05.12 |
스파르타 부트캠프 자바 컬렉션 정리 (0) | 2024.05.08 |
스파르타 코딩클럽 부트캠프 배열(Array), 다형성(1차원, 2차원, 3차원) (0) | 2024.05.07 |
스파르타 코딩클럽 부트캠프 (Java 문법 5장) (0) | 2024.05.03 |