출처 - https://blog.naver.com/sensate1024/221268040887
이번 포스팅은 자바 예외처리에 대해 알아본다.
예외처리는 프로그램에서 문제가 발생될 만한 곳을 예상하여 사전에 "문제가 발생하면 이렇게 해라"라고 프로그래밍 하는것을 말한다.
프로그램은 에러가 발생하면 중단되기 때문에 다음 단계를 진행할 수가 없다.
아래 스크립트를 보자
[예외처리를 하지 않은 경우]
- 위에 처럼 프로그래밍을 하면 어떤 결과가 나올까?
- 나누기 부분에서 에러가 발생하게 된다.
- 그러면 더하기, 빼기는 실행이 되지 않고 종료된다.
[결과]
[예외 처리를 하는 경우]
- 에러가 예상되는 부분에 예외처리를 하면 아래 스크립트도 실행이 된다.
[결과]
[try ~ catch]
[문법]
try {
// 로직처리
} catch (Exception e) {
// 문제발생 로직처리
}
- try{} 안에서 프로그램을 했는데 문제가 발생하면 catch{} 으로 이동하며 그 안에 있는 스크립트가 실행된다.
- Exception 은 에러의 모든형태를 의미한다.
- 특정 Exception으로 변경할 수 있다.
- Exception의 종류는 엄청 많기 때문에 라이브러리를 활용하자.
[다중 처리 문법]
try {
// 로직처리
} catch (ArrayIndexOutOfBoundsException e) {
// 문제발생 로직처리
} catch (NumberFormatException e) {
// 문제발생 로직처리
} catch (Exception e) {
// 문제발생 로직처리
}
- try{} 에서 에러가 발생했을때 셋중에 하나로 이동하게 된다.
- ArrayIndexOutOfBoundsException
- 배열을 사용시 존재하지 않는 index값을 호출하면 발생한다. - NumberFormatException
- 숫자로 변경 할 수 없는 문자열을 변경하려고 하는 경우 발생한다. - Exception
- 위 두개가 형태가 아닌 경우의 모든 에러를 의미한다.
[throws]
- 호출한 쪽으로 예외를 던지는 방식이다.
- 메소드에 적용할 수 있다.
- throws 를 사용하는 메소드를 호출하는 부분은 반드시 try{} 구문안에 있어야한다.
- 예외를 호출한 곳으로 던진 후 자신의 스크립트는 실행하지 않고 호출부만 실행된다.
[문법]
private void actionA() throws Exception{
- 기본메소드 선언 구문 + throws + 예외종류 로 구성된다.
[사용예]

- actionB는 actionA 메소드를 호출한다.
- actionA에서 throws 처리를 했으므로 try{} 구문으로 적용하지 않으면 에러표시가 난다. - actionA() 메소드에서 throws 처리를 했다.
- actionA에서 에러가 발생하면 actionB로 넘어가게 된다.
- System.out.println(iArr[4]); 요 구문에서 에러가 나게 된다.
이유는 배열 index가 4번은 없기 때문이다.
- System.out.println("end acionA"); 은 수행하지 않는다.

- 메인메소드를 호출한다.
- ThrowsExClass 객체를 생성한다.
[결과]

[출처] [JAVA] 예외처리 - try~catch, throws|작성자 꿈의인생
'IT > 자바' 카테고리의 다른 글
컬렉션 프래임워크 (0) | 2018.05.11 |
---|---|
예외처리 수업내용 (0) | 2018.05.10 |
예외처리 (0) | 2018.05.10 |
외부파일 가져오기, 자바 파일 압축 및 컴파일 방법 (0) | 2018.05.10 |
추상클래스와 인터페이스 (0) | 2018.05.10 |