1. 순서대로 try catch로 잡아내는법
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExceptionTest1 {
public ExceptionTest1() {
try {
//예외처리하기
//예외 발생 가능한 코드와 예외 발생가능성이 없는 코드도 명시가 가능하다.
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 = ");
int n = sc.nextInt();
System.out.println("n = "+ n);
}catch(InputMismatchException ime) { //int 부분에 문자열을넣으면 에러나는 부분을 예외처리로 잡음
//try 영역의 코드가 예외가 발생하면 실행될 영역
//ime.printStackTrace();
System.out.println(ime.getMessage());
System.out.println("숫자를 잘못입력하였습니다. ");
}
System.out.println("프로그램 종료되었습니다.");
}
public static void main(String[] args) {
new ExceptionTest1();
}
}
2.예외 한번잡고 전부다 동일한 증상으로 하는법
import java.util.Scanner;
public class ExceptionEx2 {
Scanner sc = new Scanner(System.in);
public ExceptionEx2() {
try {
System.out.print("첫번쨰 수 => ");
int num1 = Integer.parseInt(sc.nextLine());
System.out.print("두번째 수 => ");
int num2 = Integer.parseInt(sc.nextLine()); // --!!!! NumberFormatException
int result = num1 * num2;
int result2 = num1 / num2; //---- 0으로 나누기 ArithmeticException
System.out.println(num1 + "*" + num2 + "= " + result);
System.out.printf("%d/%d=%d\n", num1, num2, result2);
String names[] = {"세종대왕", "이순신"};
for (int i = 0; i <=names.length; i++) { //배열 index ArrayIndexOUtOfBoundsException
System.out.println("names["+i+"]= "+ names[i]);
}
}catch(ArrayIndexOutOfBoundsException aoe) {
System.out.println("배열에서 예외 발생");
}catch(Exception e) { //위에 catch를 제외한 나머지
System.out.println("0을 제외한 정수를 입력하세요 .. ->" + e.getMessage());
}
}
public static void main (String args[]) {
new ExceptionEx2();
}
}
'language > java이론' 카테고리의 다른 글
[java,자바] 리스트,큐, 데큐 설명및 실습 (List,Queue,Deque) (0) | 2021.01.08 |
---|---|
[java,자바] 컬렉션 프레임워크 collection framework (0) | 2021.01.07 |
[java,자바] 내부클래스 (0) | 2021.01.06 |
[java,자바] 접근제한자 public,protected,default,private (0) | 2020.12.30 |
[java,자바] 상속하는 방법 (0) | 2020.12.30 |
최근댓글