정리노트
[java] 내부 클래스, 예외 처리
망고고래
2023. 10. 24. 17:37
Chapter8 추상 클래스와 인터페이스, 내부 클래스
3. 내부 클래스
what?
클래스 안의 클래스
why?
외부 클래스의 멤버를 상속과 비슷하게 사용할 수 있다.
how?
1)내부 클래스의 종류
①인스턴스 클래스
②스태틱 클래스
③지역 클래스: 외부 클래스의 메서드 안에 있는 클래스. 지역변수처럼 다루어진다.
(④익명 클래스)
2)접근성
내부 클래스는 클래스이지만 변수처럼 다루어지며, 제어자는 private나 protected를 사용한다.
3)익명 클래스
what?
기존 클래스를 오버라이딩하여 사용하는 것
how?
중괄호 마지막에 세미콜론을 붙이는 것에 주의한다.
Chapter9 예외 처리
1. 예외
what?
개발자가 수습할 수 있는 정도의 오류
2. 예외처리
what?
발생할 수 있는 예외를 예상해서 미리 대응방법을 정해두는 것
why?
예외로 인해 프로그램이 종료되는 등의 상황을 막기 위함
how?
↓↓
3. try-catch/finally
try
{
//예외가 발생할 가능성이 있는 코드들
}catch(예외1)
{
//예외 1 처리
}catch(예외2)
{
//예외 2 처리
}finally
{
//예외 여부와 상관없이 실행되는 부분
}
finally문은 필수가 아니고 필요에 따라 넣을 수 있다.
4. 객체로서의 예외
자바는 예외도 객체로 처리한다. 그리고 모든 예외는 Exception 클래스를 상속한다.
- 다형성을 이용해 catch문에 들어가는 예외를 모두 (Exception 참조변수)로 처리할 수 있다.
- 상속을 이용해 Exception의 메서드인 getMessage(), toString(), printStackTrace() 등을 사용할 수 있다.
5. throw
what?
고의로 예외를 발생시키는 명령어
why?
문법적으로는 문제가 없지만 예외를 발생시켜야 할 때 사용한다.
how?
Exception 참조변수 = new Exception("예외 문구 입력 가능");
throw 참조변수;
6. 예외 던지기(throws)
what?
메서드에서 예외가 발생할 경우 자신을 호출한 쪽으로 예외 처리 책임을 넘기는 것
why?
예외 처리를 한꺼번에 하기 위해서…?(맞았다!)
예외 처리를 메서드마다 하나하나 하는 것이 아니라 호출한 쪽에서 한 번에 처리할 수 있다.
how?
void method() throws Exception
{
}
7. 사용자 정의 예외
what?
직접 만들어서 사용하는 예외 클래스
why?
기존 예외 클래스만으로 표현할 수 없을 때 사용한다.
how?