본문 바로가기

Java/java 기초

예외처리 공부

public class mainClass {
	public static void main(String[] args) {
		/*
		 * Exception : 예외 != 에러
		 * 에러가 아니며 프로그램이 멈추는 것이 아니다!!
		 * 			      개발자용(유지보수)
		 * 
		 * baseball -> 1 2 3 -> 'A' -> 65 
		 * 예상 할수 있는 값 외의 값이 입력 됬을때 예외 발생
		 * 
		 * 예외 발생 경우
		 * number -> format	1 2 3 -> 'A'
		 * array -> index number int arr[] = new int[3] -> arr[3]
		 * class -> Scanner 못찾는다.
		 * file -> 없다
		 * 
		 * int num[] = new int[2];
		 * 
		 * try{
		 * 		num[2] = 'a'; // 예외가 발생할 가능성이 있는 코드
		 * }catch(예외클래스 1 e){
		 * 	메시지}
		 * catch(예외클래스 2 e){
		 * 	메시지}
		 * catch(예외클래스 3 e){
		 * 	메시지
		 * }finally{
		 *	// 무조건 실행
		 *  // 뒤처리
		 *  	파일close
		 *  	DB 원상복구 -> rollback -> undo
		 * }
		 */
		int num[] = { 11, 22, 33 };
		
		System.out.println("프로그램 시작");
		
		try {
			for (int i = 0; i < 4; i++) {
				System.out.println(num[i]);
			}
			
			System.out.println("배열 출력 완료");
		} catch (ArrayIndexOutOfBoundsException e) {
//			System.out.println("배열 범위 초과");
//			e.printStackTrace(); // 3번쨰에 오류가 발생
			System.out.println(e.getMessage());
			
//			return;
				//숫자로들어와야하는데 문자로 들어옴
		} catch (NumberFormatException e) {
			e.printStackTrace();
		 //예외처리와 상관없이 무조건 실행이 된다.
		}finally {
			System.out.println("finally 무조건 실행됨");
		}
		
		System.out.println("프로그램 끝");
	}
}

 주요 예외처리 대상

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class mainClass {
	public static void main(String[] args) {
		
		// Exception
		
		// NullPointerException
		String str = null;
		
		try {
			System.out.println(str.length());
		}catch (NullPointerException e) {
			System.out.println("str이 할당 되지 않았습니다");
		}
		// ArrayIndexOutOfBoundsException
		int arr[] = {2, 4, 6};
		
		try {
			System.out.println(arr[3]);
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("index 범위 초과");
		}
		// FileNotFound
		File file = new File("c:\\xxx.txt");
		
		FileInputStream is;
		
		try {
			is = new FileInputStream(file);	
		}catch (FileNotFoundException e) {
			System.out.println("file을 찾을 수 없습니다");
		}
		
		// NumberFormatException
		int num;
		
		try {
			num = Integer.parseInt("1233.456");
		}catch(NumberFormatException e) {
			System.out.println("형식이 다릅니다");
		}
		// StringIndexOutOfBoundsException
		String str1 = "abc";
		
		try {
			str1.charAt(3);
		} catch (StringIndexOutOfBoundsException e) {
			System.out.println("String index 범위 초과");
		}
	}
}

 

 

예외처리 모음 링크: http://www.ezbocis.com/java-exception-jongryu/

'Java > java 기초' 카테고리의 다른 글

오버로딩  (0) 2019.11.26
가변 인수 개념 파악하기  (0) 2019.11.26
베이스볼 게임 (메소드 분리)  (0) 2019.11.26
오름차순, 내림차순(메소드)  (0) 2019.11.26
ASCII 코드를 활용한 암호화 & 복호화  (0) 2019.11.25