복붙노트

[SPRING] 스프링이 체크되지 않은 예외 만 처리하는 이유

SPRING

스프링이 체크되지 않은 예외 만 처리하는 이유

스프링이 체크되지 않은 예외 만 처리하는 이유를 알고 싶습니다. .....이 문제의 원인은 무엇인지 설명 할 수 있습니다.

Spring은 체크 된 예외를 피할 수있는 디자인 패턴을 사용하고 있습니까?

해결법

  1. ==============================

    1.디자인 패턴이 아니라 예외 처리를위한 모범 사례.

    디자인 패턴이 아니라 예외 처리를위한 모범 사례.

    아래 코드를 고려하십시오.

    public void consumeAndForgetAllExceptions(){
        try {
            ...some code that throws exceptions
        } catch (Exception ex){
            ex.printStacktrace();
        }
    }
    

    위의 코드에 어떤 문제가 있습니까?

    예외가 throw되면 정상적인 프로그램 실행이 일시 중단되고 컨트롤이 catch 블록으로 전송됩니다. catch 블록은 예외를 catch하고 그냥 억제합니다. catch 블록 이후에 아무 일도 일어나지 않은 것처럼 프로그램 실행이 계속됩니다.

    다음은 어때요?

    public void someMethod() throws Exception{
    }
    

    이 메소드는 공백입니다. 그것에 코드가 없습니다. 빈 메소드가 예외를 던질 수있는 방법은 무엇입니까? 자바가 당신을 그렇게하지 못하게합니다.

    개인적으로 나는 throws 원인에서 선언되지 않은 예외를 선호합니다. 나는 그들에게 관심이 없을 때 예외를 잡아야하는 것을 싫어한다. 스펙에 몇 가지 예외 유형이 더 필요 하다는데 동의하지만, 체크해야한다는 것에 동의하지 않습니다. 대부분의 프레임 워크는 Spring 프레임 워크뿐만 아니라 검사되지 않은 예외에 의존합니다.

    Java API에는 많은 검사되지 않은 예외가 있습니다.  와 같은 NullPointerException, IllegalArgumentException 및 IllegalStateException 자바로 제공되는 표준 예외로 작업하는 것을 선호합니다. 그것들은 내 코드를 이해하기 쉽게 만들어 주며 코드의 메모리 사용량을 증가시키지 않습니다.

    참조 :

  2. ==============================

    2.Spring의 핵심 테마는 Dependency Injection과 IOC입니다. 확인 된 예외는 불필요한 코드를 추가하고 더 많은 종속성을 만듭니다. 따라서 검사 된 예외의 종속성 비용이 이점보다 큽니다. 코드를 테스트하는 기능이 줄어 듭니다. 그들은 낮은 결합력과 높은 결합력을 이끌어 낸다. 코드의 목표는 높은 결합력과 낮은 결합력이어야합니다. 봄은 S.O.L.I.D 디자인 원칙에 중점을 둡니다.

    Spring의 핵심 테마는 Dependency Injection과 IOC입니다. 확인 된 예외는 불필요한 코드를 추가하고 더 많은 종속성을 만듭니다. 따라서 검사 된 예외의 종속성 비용이 이점보다 큽니다. 코드를 테스트하는 기능이 줄어 듭니다. 그들은 낮은 결합력과 높은 결합력을 이끌어 낸다. 코드의 목표는 높은 결합력과 낮은 결합력이어야합니다. 봄은 S.O.L.I.D 디자인 원칙에 중점을 둡니다.

  3. from https://stackoverflow.com/questions/23178952/why-spring-handles-only-unchecked-exceptions by cc-by-sa and MIT license