[JAVA]_예외 처리

전희주·2023년 4월 23일
0

JAVA

목록 보기
18/24

JAVA 예외처리

예외 처리 방법 2가지

  • 직접 처리 방법
  • 위임 방법
  • ✨ e.printStackTrace() 키워드 출제

e.printStackTrace() = 에러 메세지의 발생 근원지를 찾아서 단계별로 에러를 출력한다.

try {
  // ...
}
catch(Exception e){
   e.printStackTrace();
}
  • ✨ throw + 예외클래스에서 throw 키워드 생략 불가
  • 다중 throws 사용 가능
public void a() throws NullPointerException, ArithmeticException{
		b();
	}
  • ✨ throws / throw 빈칸 채우기 출제
package p06;

import java.util.Random;

class MyRandom{
	public void getrandom() throws NullPointerException{
		// 난수값 발생 : 0 ~ 2
		Random r = new Random();
		int n = r.nextInt(3); // 0 ~ 2
		//비즈니스 규칙 변경됨. 0이면 예외라고 가정하자.
//		if(n==0)throw new Exception("랜덤값 0으로 인해 예외발생");
		if(n==0)throw new NullPointerException("랜덤값 0으로 인해 예외발생"); //런타임 에러임으로 컴파일 언체크드 
		System.out.println("값:" + n);
		
	}
}
//throws와 throw 빈칸 채우기 나옴!! 위치도 알아놓기!!


public class ExceptionTest {
	public static void main(String[] args) {
		
		System.out.println("start");
		MyRandom x = new MyRandom();
		try{
		x.getrandom();
		}catch(NullPointerException e) {
			System.out.println("예외처리" + e.getMessage());
		}
		System.out.println("end - 정상종료");
	}

}

나도 코딩 예외 처리

  • 런타임 오류(에러, 예외): 컴파일은 되는 데 실행 과정에서 문제가 발생

    • 수습 가능한 것: 예외
  • 컴파일 오류: 실행이 안됨

  • 기본적인 예외 처리 구문


try{
	System.out.println(3/0);
} catch (Exception e){
	System.out.println("이런 문제가 발생했어요 =>" + e.getMessage()); 
    e.printStackTrace(); 
}

}

catch

  • try 구문 내 코딩이 예외를 발생시켰을 시 catch 구문에서 해당 예외와 관련한 문구들을 출력함
  • try 구문의 예외에 해당하는 catch 절이 수행된다는 측면에서 switch-case 문과 유사함

throw

  • 의도적으로 예외를 만들어 발생시키는 것

finally

  • 문제 발생 유무와 상관없이 무조건 실행되어야 하는 문장

Try with Resources

사용자 정의 예외

throws

  • 메소드를 호출한 쪽으로 예외 처리 미루기

퀴즈 11

0개의 댓글