산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 예외 처리 마스터: try-catch-finally, throw, throws 완전 정복

Java 예외 처리 마스터하기

이 가이드는 Java 예외 처리 메커니즘(try-catch, finally, throw, throws)을 명확한 예제와 모범 사례 팁으로 안내합니다.

이전 레슨에서 Java 예외와 프로그램 흐름 중단 이유를 소개했습니다. 그런 예외를 우아하게 처리하는 것은 견고하고 유지보수하기 쉬운 코드에 필수적입니다.

Java 예외 관리 주요 전략:


1. try…catch 블록 사용

try…catch 구문은 Java 에러 처리 모델의 초석. 예외 발생 가능 코드 try 블록에 배치, 이후 특정 예외 캐치.

try { // 예외 발생 가능 코드 } catch(Exception e) { // 예외 처리 }

catch 절은 try 블록 등장 시 필수; 예외 가로채 적절 대응 가능.

예제: ArithmeticException 처리

class Main { public static void main(String[] args) { try { int divideByZero = 5 / 0; System.out.println("Rest of code in try block"); } catch (ArithmeticException e) { System.out.println("ArithmeticException => " + e.getMessage()); } } }

출력

ArithmeticException => / by zero

이 스니펫에서 0으로 나누기 시 ArithmeticException 발생. 예외 캐치, catch 블록 실행, try 블록 내 예외 이후 코드 건너뜀.

try 블록이 예외 없이 완료되면 catch 블록 단순 우회.


2. finally 블록 활용

finally 블록은 예외 발생 여부와 관계없이 항상 실행. 정리 작업(파일 닫기, 리소스 해제, 로깅)에 이상적.

한 try 문에 finally 블록 하나만 동반 가능.

try { // 코드 } catch (ExceptionType1 e1) { // 처리 } finally { // 항상 실행 }

예제: 예외 후 finally

class Main { public static void main(String[] args) { try { int divideByZero = 5 / 0; } catch (ArithmeticException e) { System.out.println("ArithmeticException => " + e.getMessage()); } finally { System.out.println("This is the finally block"); } } }

출력

ArithmeticException => / by zero This is the finally block

finally 블록이 catch 블록 후 실행되어 예외 발생 시에도 중요 정리 코드 실행 보장.

모범 사례: 성공/실패와 무관하게 실행되어야 하는 코드(스트림 닫기, 공유 상태 리셋 등)에 finally 사용.


3. 명시적 예외 던지기와 throws 선언

throw 키워드로 예외 수동 발생 가능. 던져지면 제어가 가장 가까운 일치 catch 블록으로 점프.

예제: throw 사용

class Main { public static void divideByZero() { throw new ArithmeticException("Trying to divide by 0"); } public static void main(String[] args) { divideByZero(); } }

출력

Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0 at Main.divideByZero(Main.java:5) at Main.main(Main.java:9)

throws 절은 메서드가 특정 체크드 예외 전파 가능성 선언. 호출자가 처리하거나 추가 전파해야 함 알림.

예제: 파일 I/O에서 throws 사용

import java.io.*; class Main { // 이 메서드가 IOException 던질 수 있음 선언 public static void findFile() throws IOException { File newFile = new File("test.txt"); FileInputStream stream = new FileInputStream(newFile); } public static void main(String[] args) { try { findFile(); } catch (IOException e) { System.out.println(e); } } }

출력

java.io.FileNotFoundException: test.txt (The system cannot find the file specified)

파일 없으면 FileInputStream이 FileNotFoundException 던짐(IOException 하위 클래스). findFile()이 throws IOException 선언했으므로 main 메서드 처리 필수.

메서드 내부에서 예외 안 잡으면 throws로 선언해 호출자에게 잠재적 실패 알림.

더 깊은 통찰은 Java throw와 throws 문서 참조.

java

  1. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  2. Java 주석: 종류, 사용법, 모범 사례
  3. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  4. Java String 마스터하기: 생성, 메서드, 모범 사례
  5. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  6. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  7. Java 예외 처리 심화: try-catch-finally와 리소스 관리
  8. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  9. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  10. Java Assertion(어설션) 실전 가이드: 버그 조기 발견과 코드 신뢰성 확보