728x90
예외처리(Exception)
예외처리란?
- 없는 게 좋은데 충분히 일어날 수 있는 것 → 에러난 라인 앞뒤로 확인
- 프로그램이 실행되는 과정에서 다양한 경우의 수에 대응하지 못 하여 발생하는 상황
에러의 종류 시점에 따른 분류
✔️ 컴파일 에러 : 소스 구문 오류로 인한 컴파일이 불가능한 상태(시작도 하기 전에 에러)
✔️ 런타임 에러 : 구문상의 에러는 없지만 실행되는 과정에서 발생하는 예외사항 → 프로그램 강제 종료
런타임 에러 종류
- 논리 오류 → 개발자가 똑똑해져야한다
- 자바 가상머신 오류 → 시스템 자체 오류
- 예외 → 예외 클래스로부터 예외 객체를 생성하며 프로그램에서 지정된 예외 처리 구문으로 넘긴다 (콜백)
✅ 예외 구문 : try ~ catch(예외 구문) ~ finally(무조건 실행)
- 예외 처리는 복수 처리도 가능하다.
- 그외 다른 예외 처리를 하기 위해 Exception 으로 알 수 없는 예외를 처리하기도 한다.
e의 기능
- e.getMessage() : 간단한 에러 메시지 리턴
- e.printStackTrace() : 실제 예외 상황시에 출력되는 메시지 강제 출력
Calendar
- 자바에서 기본으로 제공하는 API 기능 중 하나
- 싱글톤 객체로서 getInstance를 통해서 호출
달력 출력해보기
import java.util.Calendar;
//달력 만들기
public class Main05 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// 이번달은 몇주로 되어있는가?
int week_count = cal.getActualMaximum(Calendar.WEEK_OF_MONTH);
//이번달은 몇일까지 있는가?
int day_count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//이번달은 무슨 요일부터 시작하는가
//현재 일을 1일로 셋팅
cal.set(Calendar.DAY_OF_MONTH, 1);
//1일이 어느 인덱스에 위치하는지 확인
int first_day = cal.get(Calendar.DAY_OF_WEEK);
//이번달은 몇주인가? -> 행 //일~토요일 -> 열
int[][] data = new int[week_count][7];
//출력할 날짜값 -> 1씩 증가할 것
int count = 1;
//"주"수만큼 반복
for(int i = 0; i<data.length; i++) {
//일~토 반복
for(int j=0; j<data[i].length; j++) {
if(i==0 && j<first_day-1) {
//i가 0 -> 첫번째주
//j값은 요일에 대한 체크
//->이번달 첫주에서 1일이 시작되는 요일 전까지
data[i][j] =0;
} else if(count>day_count) {
//이번달의 마지막 날을 초과하는 경우
data[i][j]=0;
} else {
//그외의 경우 날짜 복사
data[i][j] = count++;
}
}
}
//배열 출력 반복문
for(int i=0; i<data.length; i++) {
for(int j=0; j<data[i].length; j++) {
if(data[i][j] ==0) {
System.out.print("\\t");
} else {
System.out.printf("%2d\\t", data[i][j]);
}
}
System.out.println();
}
}
}
✅ 실무 용어 Tip UNIX 종류는 AIS, PHOS, SOLALIS가 있고 Window 서버는 NT 서버라고 부른다
✅ Thread : 프로세스의 하위 일꾼
→ 프로세스는 생에 주기를 가진다
이 내용은 itpaper 주영아 강사님의 교재를 발췌했습니다.
728x90