에러 Error
- 에러란? 프로그램에서 발생할 수 있는 오류로, 오류의 원인은 다양하다.
- 프로그래밍 단계에서의 오류인 내부적인 요인과 프로그램 자제가 아닌 하드웨어에서 문제가 발생한 외부적인 요인이 있다.
Error의 종류 3가지
-
Syntax Error(Compilation Error) : 문법 오류(컴파일 오류)
- Pre-Compile: IDE에서 문법 오류가 일어난 순간 바로 알려준다.
-
Logic Error : 논리 오류
- Debugging Tool을 사용하여 오류를 해결한다.
💡 **디버깅 Debugging 이란?**
컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산(버그)을 찾아내고 수정하는 작업 과정을 말한다.
**Debugging Tool의 기본 기능**
디버깅 툴은 아래의 단계들을 기본기능으로 포함하고 있다
****1. ****Break Point 설정
2. 브레이크 포인트까지 이동
3. 한 단계씩 확인 Step by Step
4. Function in (Step Into)
5. Function
6.Function out
7. Stop
8. Watch : 1-7번까지의 단계를 확인할 수 있음
⇒ 디버깅 툴을 사용하면 **상위 클래스의 기능을 알 수 있다.**
프로그램 테스트
프로그램을 개발한 뒤에는 여러 단계의 테스트를 통해서 오류를 확인하고 처리해야한다.
- 단위 테스트 : 프로그램의 기능(논리의 단일부분)을 단위로 하여 테스트 한다.
- 서버를 사용하지 않고 코드만 테스트 한다.
- xUnit : .NET 개발환경에서 주로 사용되는 단위 테스트 프레임워크
- xUnit을 사용하여 테스트 케이스 작성
- TDD(Test Development Driven, 테스트 기반 개발)방식에 적용
- JUnit : 자바(스프링) 환경에서 주로 사용되는 단위 테스트 프레임워크
- 테스트 시간이 짧음
- 서버를 사용하지 않고, 서버를 테스트할 수 있음
- 통합 테스트
- 성능 테스트
- 인수 테스트
예외 처리문 try~catch~finally
- 자바는 예외가 발생하면 예외 클래스로부터 객체를 생성하고, 예외 처리시 생성된 객체를 사용한다.
- Throwable : 자바 모든에러와 예외의 최상위 클래스
- Exception : 예외 클래스
java.lang.Exception
- try ~ catch ~ final 에서 catch를 여러 번 사용할 수 있다!
catch의 맨 마지막에(최종 예외처리에서)는 Exception 클래스로 예외 처리해준다.
try {
...
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.toString());
e.printStackTrace;
} finally {
...
}
- finally
- 불안정하게 남아있게 되는 것들은 무조건 종료되도록 finally 안에 넣어 작성한다.
- 예) 파일 닫기, 데이터베이스 종료
👩💻 **실습코드**
`package com.lec.exception;` <예외 처리>[exception01]
예외 떠넘기기 throw
- 메소드 내부에서 예외가 발생하면 try-catch블록으로 예외를 처리
- throw를 사용하면 메소드를 호출한 곳으로 예외를 떠넘길 수 있음
리턴타입 메소드명(매개변수) throws Exception { }
- main( )메소드에서도 throw를 사용하여 예외를 떠넘길 수 있음 → JVM이 처리
public static void main(String[] args) throws Exception { }