본문 바로가기

Java

예외

Q1. 자바에서 예외를 처리하는데는 어떤 블록이 사용되는가?

- try~catch 블록을 사용한다. 

 

Q2. 자바의 Exception에는 어떤 어떤 종류가 있는가?

- Checked Exception, Unchecked Exception(RuntimeException)이 있다. 

 

Q3. 자바의 Exception 클래스는 무슨 클래스를 상속받는가?

- Throwable 클래스를 상속 받는다. 

 

Q4. 자바의 RuntimeException 클래스는 언제 exception이 throw되는가?

 

Q5. finally 구문의 의미는 무엇인가?

- finally 블록에 포함된 영역이 무조건 실행되어야 함을 의미한다. 

 

Q6. 두 개 이상의 catch문을 작성할 때, Exception 클래스는 어디에 작성하는게 좋은가?

       왜 그러한가?

- 맨 아래에 작성하는 것이 좋다. 왜냐하면 Exception 클래스는 모든 예외 클래스의 부모 클래스이므로,

  위에 작성하면 다른 예외 클래스들이 동작하지 않기 때문이다. 

 

Q7. NullPointerException 클래스는 어떤 기능을 하는가? 그리고 어떤 클래스를 상속하는가?

- 객체가 아직 할당이 안되었거나, null인 경우 예외를 반환한다. 

   RuntimeException 클래스를 상속한다. 

 

Q8. ArrayIndexOutOfBoundsException 클래스는 어떤 기능을 하는가? 그리고 어떤 클래스를 상속하는가?

- 배열의 인덱스를 넘어선 위치에 접근할 때, 예외를 반환한다. 

  RuntimeException 클래스를 상속한다. 

 

Q9. 자바에 존재하는 총 3가지 종류의 예외는 무엇인가?

- 에러, Checked Exception, Unchecked Exception(RuntimeException)이다. 

 

Q10. 에러란 어떤 예외를 의미하는가?

- 프로그램 밖에서 발생한 예외를 의미한다. 

 

Q11. Error와 Exception으로 끝나는 오류의 가장 큰 차이는 무엇인가?

- Error는 프로그램 밖에서, Exception은 프로그램 안에서 발생한 오류이다. 

 

Q12. IOException은 어떤 기능을 하는가? 그리고 어떤 클래스를 상속 받는가?

- IO 과정에서 문제가 발생했을 때, 예외를 반환한다. Exception 클래스를 상속 받는다. 

 

Q13. 모든 예외의 할아버지는 어떤 클래스인가?

- Throwable 클래스이다. 

 

Q14. Throwable 클래스에서 가장 많이 사용되는 메소드는 무엇 무엇인가?

- getString(), printStackTrace()이다. 

 

 

Q15. 자바에서는 사용자 정의 Exception을 만들 수 있는가? 

         만든다면 어떻게 만들 수 있는가?  

         MyException 클래스와 CustomException 클래스로 표현해보자. 

-  만들 수 있다. 

public class MyException{

    public MyException(){
        super();
    }
    
    public MyException(String message){
        super(message);
    }
}

 

 

참고

Q1~Q15 자바의 신, 5/28  

Exception (Java Platform SE 7 ) (oracle.com)

RuntimeException (Java Platform SE 7 ) (oracle.com)

NullPointerException (Java Platform SE 7 ) (oracle.com) 

ArrayIndexOutOfBoundsException (Java Platform SE 7 ) (oracle.com)

Throwable (Java Platform SE 7 ) (oracle.com)

IOException (Java Platform SE 7 ) (oracle.com)      

A1~A15 5/29 

'Java' 카테고리의 다른 글

Serializable  (0) 2022.05.29
JVM  (0) 2022.05.28
JIT 컴파일러  (0) 2022.05.27
어노테이션  (0) 2022.05.27
ArrayList 클래스  (0) 2022.05.24