java 예외처리

Jiwon·2024년 1월 10일
0
post-custom-banner

에러 Error

  • 에러란? 프로그램에서 발생할 수 있는 오류로, 오류의 원인은 다양하다.
  • 프로그래밍 단계에서의 오류인 내부적인 요인과 프로그램 자제가 아닌 하드웨어에서 문제가 발생한 외부적인 요인이 있다.

Error의 종류 3가지

  1. Syntax Error(Compilation Error) : 문법 오류(컴파일 오류)

    • Pre-Compile: IDE에서 문법 오류가 일어난 순간 바로 알려준다.
  2. 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) {
  /* 예외를 확인할 수 있는 3가지 방법 */
	System.out.println(e.getMessage()); // (1)
	System.out.println(e.toString());   // (2)
	e.printStackTrace;                  // (3)
} 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 { }
profile
작은 개발 기록
post-custom-banner

0개의 댓글