지난 주 가장 중요한 다형성이 끝나고 이제 남은 것들은
이해하기 보다는 사용법 위주의 것들이라 간단하다고 함..근데 간단하지가 않음;
[예외처리]
: 소스 수정으로 해결이 가능한 에러를 "예외(Exception)"라고 하는데
이런 에러를 직접 처리하는 방법.
예외도 클래스가 존재하는데
가장 상위의 클래스가 Throwable이고 그 아래 Error와 Exception으로 나뉜다.
여기서 빨간 줄 위에 해당하는 RunTimeExeption은 대부분 프로그래머의 부주의로 인한 오류가 대부분이 때문에
예외처리보다는 코드를 수정해야 하는 경우가 많다.
예외처리방법
예외처리 방법은 2가지가 있다
1. Exception이 발생한 곳에서 직접 처리
: try ~ catch문을 이용해서 예외처리하는 것.
이건 보통 코드를 작성하면 자동으로 빨간 줄이 생기면서 try catch 해야 한다고 하기 때문에 따라서 해주면 된다.
그리고 계속해서 코드 작성할 때는 try{} 사이에 작성하면 된다. 이 안에서 생기는 에러를 catch에서 받아주는 것이기 때문.
catch 아래에 finally로 마무리를 하면 좋다고 하는데 필수까진 아닌듯함..(if문의 else 같은 느낌)
2. Exception 처리를 호출한 메서드에게 위임 (throws)
메소드메서드 선언 할 때 throws ExceptionName문을 추가해서 호출한 상위 메서드한테 떠넘기는 것.
계속 떠넘기다보면 main() 메서드까지 가게 되고 거기서도 처리 안 하면 에러뜸
그리고 에러 화면에서는 에러가 시작한 메소드부터 호출한 메서드-호출한메소드... 점점 상위 메서드로 가면서 에러가
여러 개 발생한다. (하나의 에러가 타고 타고 가기 때문에 에러가 여러 줄 뜸)
throws로 예외를 던지게 되면 호출한 부분에서 catch로 받아줘야한다.(이것도 자동으로 뜸)
[기본 API ]
<Object 클래스>
◾ java.lang 패키지 (import 안 해도 자동으로 import됨)
모든 클래스는 Object클래스를 상속받음
◾ toString메서드 - 객체의 정보를 String으로 바꿔서 사용할 때 쓰임
◾ equals 메서드 - 두 인스턴스의 주소 값을 비교해서 true / false를 반환함
#중요# - 인스턴스가 달라도 논리적으로 동일한 경우 true를 반환하도록 재정의 가능
◾ clone 메서드 - 객체의 원본을 복제하는 메서드
ㄴ 객체의 정보(멤버 변수, 값 등..) 동일한 또 다른 인스턴스가 생성이 된다.
<String 관련 클래스>
◾ String 클래스
-힙 메모리는 생성될 때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가진다.
=> equals 비교를 해줘야 한다.
# 같은 수의 리터럴 값은 하나의 주소를 공유한다.(맞나? 일단 문자열은 확실함)
< Wrapper 클래스>
: 기본 자료형을 객체화 해주는 클래스
Boxing: 기본 자료형 => 객체화
UnBoxing: 객체 => 기본 자료형
근데 이것도 자동으로 해준다.
Interger iObj = 10; // 오토 박싱 진행
Double dObj = 3.14 // 오토 박싱 진행
int num1 = iObj // 오토 언박싱 진행
double = dObj // 오토 언박싱 진행
'JAVA' 카테고리의 다른 글
Servlet, Get/Post 요청방식, ContextPath (1) | 2024.09.13 |
---|---|
자바 개발자 양성 과정 4주차 - 2 (0) | 2024.08.05 |
자바 개발자 양성과정 3주차 [상속, 다형성, 추상클래스] (2) | 2024.07.24 |
자바 개발자 양성과정 2주차 [객체] (2) | 2024.07.15 |
자바 개발자 양성과정 1주차 (1) | 2024.07.07 |