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 |