자바의 예외처리

김예지·2022년 12월 27일
0

프로그램 오류

  1. 컴파일 에러 커파일 시에 발생하는 에러
  2. 런타임 에러 실행 시에 발생하는 에러
  3. 논리적 에러 실행은 되지만, 의도와 다르게 동작하는 것

error 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
exception 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류

Exception

  • 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드 작성
  • 목적 : 비정상 종료를 막고, 정상적인 실행상태 유지

Exception - 사용자의 실수와 같은 외적인 요인에 의해 발생 : checked-예외처리 필수
RuntimeException - 프로그래머의 실수로 발생하는 예외 : unchecked-예외처리 선택

예제

public class Ex10 {

	public static void main(String[] args) {


		try {
			method2();
			System.out.println(6);
		}catch(Exception e) {
			System.out.println(7);
		}
		

	}
	
	static void method2() throws Exception{ // (필수처리 예외만) 작성할 것 예외를 직접 처리는 것이 아니라 떠넘김 
		try {
			method1();
			System.out.println(1);
		}catch(NullPointerException e) {
       //예외 객체가 만들어지고 그 안에는 예외 정보들이 담겨져있다
			System.out.println(2);
			//throw e; throw : 예외를 발생시킴
           e.getMessage(); //: 발생한 예외클래스이 인스턴스에 저장된 메시지를 얻을 수 있다
           printStackTrace(); //: 예외 발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다 
		}catch(Exception e) {
			System.out.println(3);
			return; // finally 까지 처리후 메소드문을 빠져나간다
		}finally { // 예외 발생 여부 상관없이 무조건 실행이 된다 
			System.out.println(4);
			
		}
		
		
		System.out.println(5);
	}
	
	static void method1() {
		throw new NullPointerException();
	}

}
profile
나만의 방식을 찾아가는 신입신입 개발자

0개의 댓글