정리노트

[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?