본문 바로가기
IT★_공부

자바의 Exception

by 문또끼 2022. 8. 23.

예외란?

Exception(예외) : 코드에서 발생할 수 있는 에러를 예측, 처리할 수 있는 기능.

Runtime Exception : 프로그램 실행 중에 발생하며 시스템 환경적으로나 인풋 값이 잘못된 경우에 발생할 수 있는 예외. (예.배열 값 이상을 출력할려고 하거나 맞지 않는 타입을 넣을려고 할때), 99% 개발자의 부주의로 발생함.

Checked exception : 코드 작성 중에 일어나는 예외. 반드시 예외 처리 필수.(compile시 처리해야 하는 예외)

Unchecked exception: 프로그래머가 코드 작성완료 후 컴파일 단계에서 일어나는 예외. (실행시 처리해야 하는 예외.)

예외처리란?

: 프로그램의 비정상적인 종료를 막아주는 것

try( try with resources : close 해야하는 명령문을 작성하는 위치 (자동으로 닫아줌) ){
예외가 발생할수도 있는 명령문
 }catch([발생할수 있는 예외 타입] [변수]) {
해당 타입의 예외 발생시 수행할 명령문
} finally{
}
  • catch문이 여러개 있을 경우, 예외 발생시 맞는 위치로 이동후 수행
  • 모든 예외는 exception의 자식임.( 모든 오류 잡음 )

변수.printStackTrace(); : 변수 오류 출력

throw : 프로그래머가 코드를 작성할 때 예외를 강제로 발생시키는 것.

throws : 예외 넘기기 ("예외가 발생가능한 명령문을 가진 메소드"를 호출한 메소드에게 예외처리 하라고 시킴.)

IOException MTest04

public static void main(String[] args) {
		File fi = new File("a.txt");
		
		try {
		    MyInput(fi); <- throws가 여기에서 예외처리 해줘라 라는 것, 
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}		
	}

//예외위임.
//마이인풋에서 아이오익셉션이 발생할 수 있으니 (마이인풋을 호출하는 곳에서)마이인풋(fi)에서 예외처리 해줘라. 
	private static void MyInput(File fi) throws Exception { 
		FileReader fr = new FileReader(fi); 
		int ch;
		while((ch = fr.read()) != -1) {
			System.out.print((char)ch);
		}

finally : try catch 이후 가장마지막에 꼭!! 실행해야하는 명령문

< 용어정리 >

InputMismatchException : 타입이 다른 것 입력

ArithmeticException :계산 잘못되었을 때

ArrayindexoutofboundsException: 배열 칸 초과해서 입력했을 때

nullpointerException: null값 입력

Exception:뭔가 잘못되었을 때!

'IT★_공부' 카테고리의 다른 글

자바의 스레드  (0) 2022.08.23
자바의 Stream  (0) 2022.08.23
자바의 Collection  (0) 2022.08.23
자바의 Class  (0) 2022.08.23
자바의 String  (0) 2022.08.22