2021.06.17
정의된 연산이 아닌 프로그래머가 직접 구현한 연산
시스템이 죽지 않게 하기 위해서 예외처리를 하는것
:
try{ 예외가 발생할수 있는 코드 부분 }
catch(처리할 예외 타입e){ try블록 안에서 예외가 발생했을 떄 예외를 처리하는 부분}
finally : 사용한 리소르를 해제하는 역할
-> try가 사용되면 finally는 반드시 호출이 되어야 한다.
return이 중간에 추가 되어도 finally구문은 항상 호출 된다.
선언을 try 구문 안에서 한다.
-> finally가 따로 필요가 없다 (자동으로 close가 이루어짐)
어떤 Exception이 발생할떄 상관없이 사용하려면
따로 추가하는거 없이 Exception만을 사용 하면 된다.
throw : 해당 코드에서 오류가 발생을 할수가 있지만 미루서 다른곳에서 처리를 하겠다는 의미
-> 메소드를 쓰는 쪽에서 처리하겠다는 의미
-> throw를 쓰는것이 좋을떄도 있고 안좋을떄도 있다.
예외 클래스는 기본적으로 Exception클래스를 상속받는다
-> 세부적인 예외코드를 상속받아도 상관없다
logging
-> 시스템 운영에 대한 기록
-> 오류가 발생 했을 떄 그 오류에 대한 기록을 남겨 디버깅을 용이하게 함