○Exception Handling

 ▷프로그램에서 예상치못한 예외가 일어날 경우, 이를 처라히는 방법.

 

 ▶Exception (예외)

  ▷프로그램이 재대로 실행될 수 없는 상황

  ▷프로그램이 이상한 결과를 일으킬 수 있는 비정상적인 상황

 

  ◎Ex - Standard Exception, 기본적으로 내장

   ▷null 참조 (NullPointerException)

   ▷0으로 나눔 (ArithmeticException)

   ▷음수/범위를 벗어난 index (ArrayIndexOutOfBoundsExcepton)

   ▷Class 객체의 Casting 오류 (ClassCastException)

 

  ▶Checked vs Unchecked Exception

   ▷Checked: 도중에서의 에러 (입력 오류, 방해, ...)

    ▷Check Exception처리를 잘 해주는 것이 중요.

   ▷Unchecked: run-time 프로그래밍 과정에서의 에러, 컴파일 도중 에러가 발생한다.

 

 

 ▶try ~ catch

  ▷java에서 Exception을 처리하는 방법

  ▷try 내에서 exception이 throw되었을 경우, exception에 알맞은 catch구문으로 넘어간다.

   ▷throw new Exception();

 

  ▷rethrow: exception을 throw하고 catch하지 않는 경우, 해당 함수/메서드에 throw하는 exception을 명시해야 한다.

 

  ▶Multiple catch

   ▷여러 catch블럭을 하나의 try에 대해 정의할 수 있다.

   ▷다만, exception은 각기 다르거나, 부모 Exception이 뒤에 있어야 한다.

    ▷부모 Exception이 앞에 있을경우, 뒤의 자식 Exception들이 실행되지 못한다.

 

  ▶General Exception

   ▷모든 exception은 Exception Class를 상속받는다.

   ▷Exception은 모든 종류의 exception에 대해 반응 가능하다.

 

  ▶finally

   ▷언제나 실행되는 구문

   ▷try에서 exception이 throw되어도 실행된다.

   ▷try구문이 정상적이던 비정상적이던 resource를 안전하게 종료시키는데 사용된다.

 

  ▶try-with-resource (Java 7)

   ▷resource가 statement끝에 종료되는것을 보장한다.

   ▷java.lang.AutoCloseable을 implements한 Class에 대해서 지원한다.

 

 

○User-defined Exception

 ▷사용자가 exception을 직접 정의할 수 있다.

 ▷알맞은 exception을 상속받는다. (주로 RuntimeException)

 

○assert

 ▷단언문. boolean식을 포함하고 있다.

 ▷조건을 확인하고, 해당 조건을 만족하지 못하면 프로그램을 종료시킨다.

 ▷즉, 조건이 참임을 확신가능하다.

 ▷Precondition, Postcondition을 확인하는데 주로 사용된다.

 

 ▶사용

  ▶assert boolean식;

   ▷boolean식이 false이면 프로그램을 종료시킨다.

 

  ▶assert boolean식 : 수식;

   ▷boolean식이 false이면 수식을 실행하고, 프로그램을 종료시킨다.

 

 

 ▶enable / disable

  ▷-ea 옵션을 통해 assertion을 실행하거나, 무시할 수 있다.

'컴퓨터 언어 > java' 카테고리의 다른 글

Thread  (0) 2020.11.24
Process  (0) 2020.11.23
Lambda Expression  (0) 2020.11.16
Collection  (0) 2020.11.16
Interface  (0) 2020.11.16

+ Recent posts