반응형
1) 에러와 예외의 차이
1. 에러
심각한 오류
2. 예외
덜 심각한 오류
2) try ~ catch ~ finally
try{
예외가 발생할 수 있는 문장1
예외가 발생할 수 있는 문장2
}
catch( 예외클래스명 객체명 ){
예외 발생시 실행할 문장
}
catch( 예외클래스명 객체명 ){
예외 발생시 실행할 문장
}
... (catch문은 여러개 가능)
fianlly{
예외 발생 유무에 상관없이 무조건 실행할 문장
} // finally문은 생략 가능
** 해당 구문 블럭처리 후 alt + shift + z + 아래화살표 : try~catch 블럭 만들기 **
package exception;
public class ExceptionTest {
public static void main(String[] args) {
try {
System.out.println(1+2);
System.out.println(10-9);
System.out.println(10/0);
System.out.println(10*3);
} catch (ArithmeticException ae) {
System.out.println("0으로는 나눌 수 없음");
}
}
}
3) Exception 클래스
예외 클래스들의 부모 클래스
package exception;
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExceptionTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
sc = new Scanner(System.in);
try {
System.out.println("첫번째 정수 : ");
int num1 = sc.nextInt();
System.out.println("두번째 정수 : ");
int num2 = sc.nextInt();
System.out.println("나눗셈 결과 : " + num1 / num2);
} catch (ArithmeticException ae) {
System.out.println("0으로는 나눌 수 없음");
} catch (InputMismatchException ime) {
System.out.println("정수만 입력해주세요");
} catch (Exception e) {
System.out.println("알 수 없는 오류 발생 / 개발자에게 알려주세요");
}
}
}
}
4) throws
메소드 선언부 내부에서 예외 발생시 무시하고 호출한 곳으로 떠넘긴다.
리턴타입 메소드명( ) throws 예외1, 예외2, ...{
내부는 예외1, 예외2, ... 무시하는 구역
}
반응형
'Back-End > JAVA' 카테고리의 다른 글
[Java] Wrapper Class (0) | 2021.05.31 |
---|---|
[Java] Object 클래스 (0) | 2021.05.31 |
[Java] 익명 클래스(anonymous inner class) (0) | 2021.05.28 |
[Java] 내부 클래스(inner class) (0) | 2021.05.28 |
[Java] 인터페이스(interface) (0) | 2021.05.27 |