Programing

Java에 .NET의 NotImplementedException과 같은 것이 있습니까?

lottogame 2020. 2. 11. 22:20
반응형

Java에 .NET의 NotImplementedException과 같은 것이 있습니까?


NotImplementedExceptionJava 의 .NET과 같은 것이 있습니까?


커먼즈 랭 이 가지고 있습니다. 또는을 던질 수 UnsupportedOperationException있습니다.


나는 java.lang.UnsupportedOperationException당신이 찾고있는 것이라고 생각합니다 .


예외 처리로 방해받지 않기 위해 RuntimeException을 확장하면 클래스가 다음과 같이 보일 수 있습니다.

public class NotImplementedException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    public NotImplementedException(){}
}

메시지를 가져 오기 위해 확장 할 수는 있지만 내가하는 것처럼 메서드를 사용하면 (즉, 구현해야 할 사항이 있음) 일반적으로 추가 메시지가 필요하지 않습니다.

나는 시스템을 개발하는 과정 에서이 방법 만 사용한다고 감히 말하지만 어떤 방법이 여전히 제대로 구현되지 않았는지 추적하는 것이 더 쉬워집니다. :)


거기에는 유효한 용도가 거의 없기 때문에 존재하지 않을 수도 있고 없을 수도 있습니다. 나는 그것을 사용하기 전에 두 번 생각할 것입니다. 또한 실제로 자신을 만드는 것은 쉽습니다.

.NET에있는 이유에 대해서는 이 토론을 참조하십시오 .

I 추측은 UnsupportedOperationException심지어 작업이 단지 구현되지 말하지만, 지원되지 않는되지 않지만, 가까이 온다. 이는 유효한 구현이 불가능하다는 것을 암시 할 수 있습니다. 작업이 지원되지 않는 이유는 무엇입니까? 거기 있어야합니까? 인터페이스 분리 또는 Liskov 대체 문제?

그것이 진행중인 작업이라면 갈 것입니다 ToBeImplementedException.하지만 구체적인 방법을 정의한 적이 없었습니다. 그런 다음 오랫동안 그것을 생산으로 만들면 그러한 예외가 필요할 것입니다.


언급했듯이 JDK는 밀접하게 일치하지 않습니다. 그러나 우리 팀은 때때로 그러한 예외에 대해서도 사용합니다. 우리는 UnsupportedOperationException다른 답변에서 제안한대로 갈 수 있었지만 기본 라이브러리에서 더 이상 사용되지 않는 생성자가있는 사용자 정의 예외 클래스를 선호합니다.

public class NotYetImplementedException extends RuntimeException
{
    /**
     * @deprecated Deprecated to remind you to implement the corresponding code
     *             before releasing the software.
     */
    @Deprecated
    public NotYetImplementedException()
    {
    }

    /**
     * @deprecated Deprecated to remind you to implement the corresponding code
     *             before releasing the software.
     */
    @Deprecated
    public NotYetImplementedException(String message)
    {
        super(message);
    }
}

이 방법에는 다음과 같은 이점이 있습니다.

  1. 독자들이 볼 때 NotYetImplementedException구현이 계획되었고 잊혀 졌거나 아직 진행 중이라는 것을 알고 있지만 UnsupportedOperationException( 수집 계약에 따라 ) 결코 구현되지 않을 것이라고 말합니다 . 그래서 클래스 이름에 "yet"이라는 단어가 있습니다. 또한 IDE는 호출 사이트를 쉽게 나열 할 수 있습니다.
  2. 각 호출 사이트에서 사용 중단 경고가 표시되면 IDE 및 정적 코드 분석 도구가 여전히 구현해야하는 위치를 알려줍니다. (이 지원 중단 사용은 일부에게는 잘못된 느낌이 들지만 실제로 사용 중단은 제거 발표에만 국한되지 않습니다 .)
  3. 생성자는 클래스가 아니라 더 이상 사용되지 않습니다. 이렇게하면 구현이 아닌 구현이 필요한 메소드 내부에서 사용 중단 경고 만 표시됩니다 import(JDK 9는 이 문제 를 해결했습니다).

참고 URL : https://stackoverflow.com/questions/2329358/is-there-anything-like-nets-notimplementedexception-in-java



반응형