예외를 handling 하기위해 사용되는 메서드
try-catch,finally
- **try** - **catch**는 각각 중괄호{}를 통해 실행할 코드들을 담습니다.
- try 단어의 **“시도한다”**라는 뜻에 맞게 중괄호{} 안에는 예외가 발생할 수 있지만 실행을 시도할 코드를 담습니다.
- catch 단어의 **“잡는다”**라는 의미에 맞게 중괄호{} 안에는 try 안에 있는 코드를 실행하다가 예외가 났을 때 실행할 코드를 담습니다.
- catch 는 소괄호()를 통해 어떤 예외 클래스를 받아서 처리할지 정의해 주어야 합니다.
- catch로 모든 예외를 다 받고 싶으면 Exception 을 넣어주면 됩니다.
- catch로 일부 예외만 받아서 처리하고 싶으면 해당 예외 클래스명을 넣어주면 됩니다.
- 1개의 try 문에 catch 문은 여러 개 사용할 수 있습니다. ex) 1try : 4catch
- 기존 **try - catch**의 맨 마지막에 **finally**를 붙여서 마지막에 반드시 실행할 코드를 넣을 수 있습니다.
public class StudyException {
public static void main(String[] args) {
OurClass ourClass = new OurClass();
try {
// 1. 위험한 메소드의 실행을 "시도" 해 봅니다.
// "시도" 해보는 코드가 들어가는 블럭입니다.
ourClass.thisMethodIsDangerous();
} catch (OurBadException e) {
// 2. 예외가 발생하면, "잡아서" handling 합니다.
// 예외가 발생하는경우 "handling" 하는 코드가 들어가는 블럭입니다.
// 즉 try 블럭 내의 구문을 실행하다가 예외가 발생하면
// 예외가 발생한 줄에서 바로 코드 실행을 멈추고
// 여기 있는 catch 블럭 내의 코드가 실행됩니다.
System.out.println(e.getMessage());
} finally {
// 3. 예외의 발생 여부와 상관없이, 실행시켜야 하는 코드가 들어갑니다.
// 무조건 실행되는 코드가 들어가는 블럭입니다.
System.out.println("우리는 방금 예외를 handling 했습니다!");
}
}
}
내가 사용한 try-catch
while (true) {
try {
System.out.println("회차입력");
Scanner sc = new Scanner(System.in);
round = sc.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("정수를 입력해주세요");
}
}
finally는 사용하지 않고 기본적으로 제공되는 exception메서드를 이용해서 int를 입력받는 곳에 int가 아는 값이 들어오면 예외처리를 하는 것으로 썼다.
'프로젝트' 카테고리의 다른 글
팀프로젝트 Try 해볼것!(트러블슈팅, 플로우차트) (0) | 2024.08.08 |
---|---|
수강생의 과목별 회차 점수 수정.(final) (0) | 2024.08.07 |
수강생의 과목별 회차 점수 수정.(pt2) (0) | 2024.08.06 |
수강생의 과목별 회차 점수 수정. (0) | 2024.08.02 |
계산기 (0) | 2024.07.30 |