본문 바로가기
Java 웹 프로그래밍

1218 강의 - 요약필요

by irerin07 2018. 12. 27.
728x90

JVM ArithmaticException이라는 객체를 만들어서 Excoption 발생 시킨다.

 

차라리 에러가 나서 프로그램이 죽는 것이 나은 경우가 있다.

(프로그램이 죽지 않고 잘못된 값을 리턴하는게 치명적이다.)

 

Try-catch 사용해서 에러가 생겨도 프로그램이 종료되지 않게 만들 있다.

하지만 항상 그것이 옳은 것은 아니다.

 

모든 Exception 처리하는게 아니다.

발생 가능한 Exception 알려주고 해당 Exception 처리하도록 있다.

 

Cal.divede()에서 발생 exception 참조하는 변수 ae

 

UI 사용하는쪽에서 에러 메시지가 출력되게 해야한다.

è 오류가 발생한 (사용자) 메시지가 출력이 되어야한다.

 

RuntimeException 자손이 발생 했을때는 굳이 throws 적어 필요는 없다.

-          적어주지 않아도 알아서 처리해준다.

-          그래도 적어주는 것이 명시적으로 알기 쉽기 때문에 좋다.

 

조상중에 RuntimeException 없다면 checked Exception이라 한다.

Checked Exception 경우는 try-catch 처리를 해주지 않으면 compile 에러를 발생시킨다.

-          반드시

o   Try-catch

o   Throws

-          Main 메소드에 throws 줘버리면 JVM Exception 핸들링을 맡기게 된다.

o   JVM 죽어버린다. -> 프로그램 종료 -> 이유를 수가 없다.

되도록이면 Runtime Exception 발생하도록 한다.

-          Checked Exception 발생하면 코드가 어지러워진다.

-          사용자에게 강제하지 않는 것이 좋다.

 

객체지향에서 중요한

-          프로그램을 만든다는 것은 설계가 중요하다.

-          설계 내가 만들 클래스 이름을 정하는 것이다

o   클래스는 메소드를 가지고 메소드 이름을 정하는 것이다.

o   이름 -> 직관성(이름만 봐도 알아야 한다)

-          Exception 역시 마찬가지

o   굳이 My Exception 같은 클래스를 만드는 것은 어떠한 Exception 발생 했을 사용자에게 알리기 위함이다.

Layer

-          UI 처리하는 레이어

-          계산만 처리하는 레이어……

 

 

각각의 코드는 각각의 Exception 발생

-          각각의 Exception 공통의 Exception으로 발생하게 만든다.

-          각각의 Exception 처리 필요 없이 MyException 처리해주면 된다.

-          UI에서 무슨 Exception 발생했는지 알게하고 싶다면 각각의 Exception 전부 처리해주면 된다.

UI사용자에게는 오류가 발생했을 디테일 오류를 필요는 없다.

어디에서 발생했다 정도로 살짝만 보여주면 된다.

대신 하위에서는 오류의 디테일한 로그를 남겨야한다.

 

 

 

 

콘솔에서 실행하는 프로그램

-          터미널

UI -à DAO라는 클래스를 사용한다.

-          DAO 파일에 읽고 쓰는 기능

-          DAO 메모리에 자료구조를 가질 있다.

키보드로부터 명함정보를 입력 받는다.

메뉴를 선택한다.

결과를 출력한다.

 

프로그램이 완벽하다는 것을 증명할 방법은 없다.

테스트한 까지는 완벽하다고 있다.

 

1.       Dao 클래스명 정하기

2.       Dao 어떻게 동작할지를 정한다

3.       Dao 어떤 메소드를 가질지 정한다. (메소드명, 파라미터, 리턴타입)

4.       각자 Dao 만들고 테스트코드를 작성

a.       조원끼리 이야기를 한다.

 

검증을 코드가 필요하다

눈으로 확인하는 것이 아니다

무조건 실패하는 테스트메소드를 만들고 해당 메소드를 구현하여 테스트를 통과하게 한다

테스트 주도 개발

Test Driven Development

? -> 테스트를 하기 위해선 기능정의를 거쳐야 한다. -> 기능을 먼저 정의하고 구현하라고 강제한다.

 

 

 


728x90

'Java 웹 프로그래밍' 카테고리의 다른 글

쿠키, 세션  (0) 2019.01.10
JAVA IO - 깔끔하게 정리 필요  (0) 2018.12.27
1217 강의 - 정리, 요약 필요  (0) 2018.12.27
1213 강의 정리  (0) 2018.12.13
Collection Framework  (0) 2018.12.07