자바 모듈/예외처리

BRINCE·2022년 9월 19일
0

자바 스터디

목록 보기
7/10

라이브러리와 모듈

라이브러리

  • 라이브러리 : 활용할 수 있는 클래스인터페이스들을 모아놓은 것을 말함. (클래스와 인터페이스의 바이트코드 파일이 압축되어 있다.)

  • 모듈 : 패키지 관리 기능까지 포함된 라이브러리이다. 모듈은 일부 패키지를 은닉하여 접근할 수 없게끔 할 수 있다.

라이브러리는 모든 패키지에 외부 프로그램에서 접근 가능하다.

모듈을 쪼개거나 합쳐서 프로그램 완성이 가능하다.

  • export 키워드는 모듈이 가지고 있는 패키지를 외부에서 사용할 수 있도록 노출시키는 역할을 한다.
    모듈에 대한 의존 설정을 할때는 requires 키워드를 사용한다 .
requires transitive 모듈이름 //의존설정 전의
  • 집합모듈 : 여러 모듈을 모아놓은 모듈을 말한다. 자주 사용되는 모듈들을 일일히 requires 하는 번거로움을 피하고 싶을 때 집합 모듈을 생성하면 편리하다. 모듈 기술자에 전이 의존 설정만 한다.
  • 리플렉션 허용 : 리플렉션이란 실행 도중에 타입을 검사하고 구성 멤버를 조사하는것을 말한다 . opens 키워드로 리플렉션 허용을 한다. 지정된 패키지에 대해 특정 외부 모듈에서만 리플렉션 허용도 가능하다.
  • java.base : 모든 모듈이 의존하는 기본 모듈이다.

예외처리

예외는 수습이 가능한 오류 정도로 생각하면 쉽다.😉
예외는 예외처리 (try catch finally)로 수습이 가능하다.

  • 일반예외(Exception)실행 예외(Runtime Exception) 가 있다.
  • try블록과 catch 블록에서 return 문을 사용하더라도 finally 블록은 항상 실행된다. (finally 블록은 옵션으로 생략이 가능하다.)
  • getMessage(), printStackTrace(), toString() 으로 예외 메세지를 출력 가능하다.
    printStackTrace() 같은 경우엔 어디서 어떤 예외가 발생했는지 추적한 내용까지도 출력해준다.
  • 두개 이상의 예외를 하나의 catch 블록으로 동일하게 예외 처리하고 싶을 때에는 catch 블록에 예외 클래스를 기호 |로 연결하면 된다.
catch(Exception e | Runtime Exception){...} // |로 구분해주면 된다.
  • 메소드,생성자 선언끝부분에 throws 를 입력하여 예외를 떠넘길 수도 있다.
  • main() 메소드에서도 예외를 떠넘길 수 있는데 JVM이 최종적으로 예외 처리를 하게 된다.
  • 사용자가 직접 예외를 정의 할 수 있다. -> 일반 예외로 선언할 수도 있고, 실행 예외로 선언할 수도 있다.
    • 이경우에는 가독성을 좋게 하고 싶을때 사용하면 좋다. 어떠한 문제가 발생했는지 알려주는 용도로 사용하면 굉장히 편하다. 🤩
    • 직접 정의할때는 예외 클래스를 생성해 부모 클래스를 상속받으면 된다.
      • 예외 생성자와 출력할 메세지를 집어넣은 생성자 총 두개를 선언하면 된다.
profile
자스코드훔쳐보는변태

0개의 댓글