* try/catch/finally문
try : 오류가 발생할 것 같은 경우들을 담는 곳
catch : 오류 발생시 출력값을 지정하는 곳
finally : 무조건 출력해주는 영역
* 예외처리 종류
ArithmeticException : 산술관련 에러정보 담당(0으로 나누는 것 등..)
ArrayIndexOutOfBoundsException : 배열범위를 벗어날 경우 담당
Exception : 모든 예외 처리
NullPointerException : 문자열 null 값 오류 담당
* 예외처리 메서드, 어떻게 출력될까?
종류
e.printStackTrace();
e.getMessage(); 예외 정보를 간단하게 출력해줌
* 1차원 배열 생성할 때
int[] arr = new int[2]; //arr[0] ~ arr[1] //방 2개 생성
* 단축키
alt + shift + z : try/catch문 자동생성. 첫번째꺼
* 코딩시 주의사항
예외처리는 상속관계 하위에서부터 순서대로 해야함!
☆ 실습(1) : Exception() 예외 처리
1. 출력값의 종류
- 0으로 나눌경우 발생하는 에러는 ArithmeticException 클래스에 속해있다.
- Exception클래스는 거의 모든 에러 발생을 잡아주는 클래스이다.
결과
- 14번 : 어떤 클래스 영역의 오류인지 친절하게 알려준다.
- 15번 : printStackTrace() 메서드가 어떤 종류인지, 몇번줄에서 오류가 났는지까지 알려준다.
- 16번 : 오류의 종류만 간략하게 알려준다.
2. 오류의 종류 구분하기 실습(1)
결과
0으로 나눠서 생긴 오류이므로, 담당 클래스인 ArithmeticException의 출력문이 출력된다.
3. 오류의 종류 구분하기 실습(2)
결과
문자열의 오류이므로, 담당인 NullPointerException의 출력문이 출력된다.
☆ 실습(2) : 배열 범위의 오류
- 분명 배열 공간은 2개밖에 없는데, for문에서는 3개의 공간을 지정해버렸다. 따라서 배열범위를 벗
어나는 담당인 ArrayIndexOutOfBoundsException 클래스의 출력문이 출력된다.
결과
☆ 실습(3) : finally의 활용
- finally문은 무조건 실행된다.
결과
☆ 실습(4) : throws 문을 이용한 예외처리
- throws : 메서드 안에서 오류가 날 때, 그 오류를 자신이 해결하지 않고 책임을 다른 메서드로 떠넘
길 수 있는 기능
-> throws "담당 예외클래스". 요런 식으로 쓰면 된다.
결과
☆ 실습(5) : 예외클래스의 상속관계
1. 26번줄에서 오류가 일어났다. 그 이유는?
→ 부모 예외클래스 : NullPointerException
→ 자식 예외클래스 : Exception
자식의 예외클래스의 계층이 더 높다. 예외클래스에서는 자식의 계층구조가 부모보다 더 낮아야한
다. 반대로, 접근지정자에서는 부모보다 자식이 더 커야한다.
→ (부모=디폴트, 자식=private. 안됨!!)
→ (부모=디폴트, 자식=public. 됨!!)
2. 부모의 예외클래스를 확대시키던지, 자식의 예외클래스 Exception을 지우던지
둘 중 하나를 선택해야 한다.
☆ 실습(6) : SimpleDateFormat 클래스
- new 생성시 초기값을 괄호안에 지정할 수 있다.
- H와 M은 대소문자를 확실히 구별하여 사용해야 한다. 대문자 HH는 24시간으로 표기하고,
대문자 M은 월을 표시, 반면에 hh는 12시간 표기. mm은 분을 표시한다.
- 19번줄 : 출력문에서 Date()메서드를 바로 출력할 수 있다.
- 20번줄 : 생성자 괄호 안에 설정했던 형식대로 출력할 수 있다.
결과
↖(ㅇ_ㅇ)/ 냐~하?!
'N스크린하이브리드앱과정 > JAVA' 카테고리의 다른 글
[4주][4일][3~4th] JAVA: Map. 스택과 큐 실습 (1) | 2013.08.08 |
---|---|
[4주][3일][3~4th] JAVA: 자료구조와 컬렉션(collection). Set, List. (0) | 2013.08.07 |
[4주][1일][3~4th] JAVA: 중첩클래스(nested class) (0) | 2013.08.05 |
[3주][5일][3~4th] JAVA: Wrapper 클래스 (0) | 2013.08.02 |
[3주][4일][3~4th] StringBuffer 클래스, StringTokenizer (0) | 2013.08.01 |