JavaRush /Java Blog /Random-KO /커피 브레이크 #158. Java에서 예외 처리를 위한 10가지 팁

커피 브레이크 #158. Java에서 예외 처리를 위한 10가지 팁

Random-KO 그룹에 게시되었습니다
출처: 중간 이 게시물은 Java에서 예외를 효과적으로 처리하는 방법을 더 잘 이해하는 데 도움이 될 것입니다. 커피 브레이크 #158.  Java에서 예외 처리를 위한 10가지 팁 - 1Java 예외를 처리하는 것은 어려울 수 있습니다. 처리할 Java 예외, 다시 발생시킬 예외, 단순히 무시할 예외를 결정하는 것은 어려울 수 있습니다. 그러나 예외를 처리하고 새 애플리케이션을 만드는 데 효과적으로 도움이 될 수 있는 유용한 지침이 많이 있습니다. 그들에 대해 알아 봅시다.
  1. 기록하는 내용에 주의하세요.
  2. 발생한 예외를 무시하지 마십시오.
  3. 전역 예외 처리기를 사용하십시오.
  4. 리소스를 수동으로 닫지 마세요.
  5. 일찍 발생하고 나중에 예외를 처리합니다.
  6. Java 예외는 기록되거나 다시 발생되어서는 안 됩니다.
  7. 억제된 예외를 검사합니다.
  8. throw 문에서는 예외를 정확하게 선언합니다.
  9. 가장 명백한 예외를 먼저 처리하십시오.
  10. 최신 예외 처리 의미 체계를 사용합니다.

1. 기록하는 내용에 주의하세요

소프트웨어 개발자는 보안 및 개인 정보 보호에 대한 고객의 권리를 항상 알고 있어야 합니다.
  • Java 프로그램은 데이터를 다른 시스템으로 이동할 수 있으며 수많은 개발자와 관리자가 이를 사용하여 작업할 수 있습니다(버그 수정 포함).
  • 민감한 데이터가 로그 파일에 기록되면 회사는 보안 요구 사항을 준수하지 않게 되며 직장을 잃을 수도 있습니다.

2. 던져진 예외를 무시하지 마세요

예외를 포착한 다음 무시하지 마십시오. 예외를 숨기는 것은 Java에서 예외를 처리하는 좋은 방법이 아닙니다. 최소한 예외 이름과 관련 메시지를 적어 두십시오. 이렇게 하면 문제에 대한 정보를 항목에서 찾을 수 있습니다. 숨겨진 예외로 인해 Java 애플리케이션을 디버깅하는 것은 엄청나게 어렵습니다.

3. 전역 예외 처리기 사용

프로그램 실행 중에 이전에 코드에서 포착되지 않은 몇 가지 예외가 항상 발생합니다. 따라서 포착되지 않은 예외를 처리하려면 항상 전역 예외 처리기를 추가하세요. 이렇게 하면 예외를 기록하고 처리할 수 있을 뿐만 아니라 런타임 시 예외가 발생하더라도 응용 프로그램이 중단되는 것을 방지할 수 있습니다.

4. 리소스를 수동으로 닫지 마세요

Java 예외를 처리할 때 또 다른 중요한 권장 사항은 JVM이 닫히는 리소스에 대해 close() 메서드를 호출하도록 허용하는 것입니다. 직접 닫으려고 하지 마십시오. 이는 try-resources 모듈 내부의 리소스를 초기화하여 쉽게 달성할 수 있습니다 . 의미론:
public class TryWithResourcesExample {

public static void main(String[] args) throws Exception {

try (Door door = new Door()) {

door.swing();

} catch (Exception e) { ..... }

} finally { .....}

}

}
보시다시피, try...catch 블록이 완료된 후 JVM은 리소스를 닫아 복잡하고 수정하기 어려운 리소스 누수 가능성을 제거합니다.

5. 일찍 예외를 발생시키고 나중에 처리하십시오.

코드에서 예외 조건이 발생할 때마다 예외를 발생시킵니다. 현재 메소드를 종료하기 전에 코드 줄이 실행될 때까지 기다리지 마십시오. 예외를 포착할 때 함수는 메서드 끝에 배치되어야 합니다. 이렇게 하면 메서드의 catch 블록 수가 줄어들어 코드를 더 쉽게 읽고 유지 관리할 수 있습니다.

6. Java 예외는 기록되거나 다시 발생되어서는 안 됩니다.

예외가 발생하면 다음 중 하나를 수행하십시오.
  • 예외를 기록하는 동안 프로그램 작업을 계속하십시오.
  • 예외를 다시 발생시키고 데이터를 기록하는 다른 방법을 허용합니다.
두 단계를 결합하지 마십시오. 아래 예제와 같이 동일한 예외를 기록하고 다시 발생시키지 마십시오.
try {

Class.forName("com.min.Example");

} catch (ClassNotFoundException ex) {

log.warning("Class was not found.");

throw ex;

}
이로 인해 코드가 중복되고 로그 파일이 중복 항목으로 막혀 코드 진단이 훨씬 더 어려워집니다.

7. 억제된 예외 검사

억제된 예외는 모든 개발자가 알지 못하는 새로운 언어 기능입니다. 리소스를 사용하여 입증된 메서드를 구현하면 두 가지 예외가 동시에 발생할 수 있습니다. 이 조건은 억제된 예외가 있는지 쿼리하여 쉽게 확인할 수 있습니다. 이 조건이 발생했는지 확인하는 유일한 방법은 대상 예외에 억제된 예외도 포함되어 있는지 확인하는 것입니다.

8. throw 문을 사용할 때 정확한 예외를 지정하세요.

부주의한 개발자가 메서드 본문 내에서 throw 문을 사용하면 일반 예외 클래스를 사용하게 됩니다. 그러나 이는 Java에서 예외를 처리하는 최선의 방법은 아닙니다. 대신 항상 메서드에서 발생할 수 있는 정확한 예외를 지정하세요. iIt은 특정 방법이 예상대로 작동하지 않을 때 사용할 수 있는 다양한 오류 처리 기술을 다른 개발자가 알 수 있도록 도와줍니다.

9. 가장 명백한 예외를 먼저 처리하십시오.

이는 Java 예외 처리 방법에 대한 팁이라기보다는 컴파일러 요구 사항에 가깝지만 개발자는 항상 가장 분명한 예외를 먼저 처리하고 가장 확실하지 않은 예외를 마지막에 처리해야 합니다. 이 규칙을 따르지 않으면 JVM은 매우 비밀스럽고 이해하기 어려운 오류 메시지와 함께 컴파일 시간 오류를 반환합니다. 항상 코드에서 특정 예외를 처리하여 소프트웨어 개발자로서의 삶을 더 쉽게 만드세요.

10. 최신 예외 처리 의미 체계를 사용하세요.

Java는 개발을 단순화하고 Java 코드의 양을 크게 줄이는 많은 오류 및 예외 처리 기능을 제공합니다. 단일 catch 블록에서 여러 예외를 처리하고 try 블록을 사용하여 자동으로 리소스를 닫는 기능을 사용합니다 . 다른 개발자가 발생한 예외를 처리할 필요가 없도록 런타임 예외를 사용하십시오.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION