예외처리
프로그램을 이용하다가 예외가 발생하게 되면, 프로그램이 그 즉시 종료(비정상 종료)되기 때문에
예외를 개발자가 미리 처리해야 한다.
예외처리를 하는 이유는?
프로그램이 비정상적으로 종료되는 것을 예방하기 위해서.
예외처리 하는 방식은?
예외처리가 발생할 수 있는 부분을 try문으로 감싸주고,
그 아래에 바로 catch문으로 예외가 발생했을 경우 수행할 코드를 작성해 준다.
예시.
public static void main(String[] args){
int[] datas=new int[3];
try{
System.out.println("로그 01");
// 예외가 발생할 확률이 존재하는 코드를 작성
System.out.println(datas[0]);
// 만약 예외가 발생한다면, 즉시 catch문으로 이동한다.
int a = 10;
int b = 1;
int c = a/b;
Scanner sc = new Scanner(System.in);
System.out.println("정수 입력 >> ");
int num = sc.nextInt();
System.out.println("로그 02");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("예외가 발생했을 때 수행할 코드를 작성");
e.printStackTrace(); // 예외 발생한 원인 보여줘!
}
catch(ArithmeticException e){
System.out.println("0으로는 나누기를 할 수 없습니다!")
}
catch(Exception e){
System.out.println("알 수 없는 예외 발생함")
}
finally{
System.out.println("예외 발생여부와 무관하게 항상 수행되는 코드를 작성")
}
System.out.println("로그 03")
}
try와 catch는 짝꿍이어서, 항상 같이 붙어 다닌다고 볼 수 있다.
try문 안쪽에는 예외가 발생할 확률이 존재하는 코드를 작성해 주고,
그 아래에 catch문을 작성해 준다.
try문에서 예외가 발생하게 된다면 그 즉시 catch문으로 이동하게 된다.
따라서 try catch문을 사용하게 된다면 설령 예외가 발생되더라도 프로그램이 정상적으로 종료된다.
++
- finally의 경우에는, 위의 예제에서 기재한 것과 같이 예외 발생여부와 무관하게 항상 수행되는 코드를 작성할 수 있는 곳이다.
- 어떤 오류가 발생할지 모르는 경우에는, Exception을 적어준다.
catch(Exception e){
System.out.println("알 수 없는 예외 발생");
}
🍀내용 정리!
예외처리 하는 이유 : 비정상 종료를 막기 위해서
try에는 예외가 발생할 수 있는 코드를 작성,
예외가 없다면 : 아무 일도 없음
예외가 발생한다면 : 즉시 catch문으로 이동됨. (유형에 맞는 catch문으로!)
예외 발생 여부와 관계없이 수행시킬 거라면
: finally 작성
어떤 오류가 발생할지 모를 때에는
: 모든 Exception들의 최상위 클래스인 Exception을 적어준다.
catch문 () 안에는 try문에서 오류가 났을 때 어디로 이동해야 하는지를 적어준다.
'JAVA > java' 카테고리의 다른 글
[JAVA] 파일 입출력 (0) | 2024.07.28 |
---|---|
[JAVA] thread (0) | 2024.07.26 |
[JAVA] 결합도와 응집도 (1) | 2024.07.25 |
[JAVA] MVC 패턴_2 (4) | 2024.07.25 |
[JAVA] 팀 과제_커뮤니티 사이트 (0) | 2024.07.19 |