study/JAVA 🦊

JAVA - 9

서나쓰 2021. 1. 7. 15:24
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

'study > JAVA 🦊' 카테고리의 다른 글

JAVA - 10  (0) 2021.01.07
JAVA - 8  (0) 2021.01.07
JAVA - 7  (0) 2021.01.07
JAVA - 6  (0) 2020.12.28
JAVA - 5  (0) 2020.12.28