728x90
JAVA Exception 예외 처리
예외 : 프로그램 실행 중 예기치 못한 비정상적인 상황
예외가 나타나게 방치 후 사후 처리를 한다.
try~ catch 문에 의해 직접 처리하고, 메서드 호출 측으로 throws를 명시적으로 써준다.
Unchecked Exception : RuntimeException 예외처리 선택
ArithmeticException : 0으로 나누는 경우, 논리 적 예외
ArrayIndexOutOfBoundsException : 잘못된 배열 첨자 예외
NegativeArraySizeException : 배열 선언 시 할당 크기가 음수일 때 예외
ClassCastException : 허용 불가능한 형 변환 예외
NullPointerException : null 값을 갖는 참조 변수로 멤버 접근 예외
NumberFormatException : wrapper 클래스의 parse 메서드로 문자열-> 숫자 자료형 예외
java.util.InputMismatchException : Scanner 클래스의 next 메서드 받는 자료형 예외
java.io.IOException : 입출력 동작 예외
기타
String getMessage() : 예외 객체가 가지고 있는 에러 메시지 반환
void printStackTrace() : 예외 발생 원인과 경로를 추적하여 콘솔에 표시, 디버깅 목적
<오류 객체에서 메시지 받아오기>
public class Exception{
public static void main(String[] args){
int num1 = 3, num2 = 0;
try{
int result = num1/num2;
System.out.println(result);
}
catch(ArithmeticException ae){
String str = ae.getMessage(); // 오류 객체에서 메세지를 받아옴
System.err.println(str);
}
System.out.println("끝");
}
}
<메서드에서 예외가 생기면 던지기>
public class Exception2{
static int divide(int a, int b) throws ArithmeticException{
int result = a/b;
return result;
}
public static void main(String[] args){
try{
int result = devide(3,0);
System.out.println(result); // 예외가 없다면 출력
}
catch(ArithmeticException ae){
String str = ae.getMessage(); // 예외 메세지 가지고 옴
System.out.println(str);
}
System.out.println("끝");
}
}
<Scanner 자료형 next로 받기 Excetpion>
public class NextIntException{
static int getInteger() throws InputMismatchException{
Scanner s = new Scanner(System.in);
int num = s.nextInt();
return num;
}
public static void main(String[] args){
boolean exception = true;
for(;exception;){ // 제대로 입력할때까지 반복
System.out.print("정수를 입력하시오 : ");
try{
int result = getInteger();
System.out.println("입력한 값 : " + result);
exception = false;
}
catch(InputMismatchException im){
String str = im.getMessage(); // 예외 메세지 가지고오기
System.err.println(str);
System.out.println("다시 입력하세요");
}
}
}
}
728x90
'JAVA Programming > JAVA 개념 정리' 카테고리의 다른 글
JAVA 제네릭 타입 컬렉션 클래스 (1) | 2021.12.05 |
---|---|
JAVA Exception 사용자 예외처리 (1) | 2021.12.04 |
JAVA interface 인터페이스 abstract class 추상 클래스 (0) | 2021.12.02 |
JAVA 상속과 다형성 (0) | 2021.12.01 |
JAVA Polymorphism Upcasting Downcasting 자바 다형성 업 캐스팅 다운 캐스팅 (1) | 2021.11.12 |