NotImplementedException
Java 의 .NET과 같은 것이 있습니까?
NotImplementedException
Java 의 .NET과 같은 것이 있습니까?
답변:
커먼즈 랭 이 가지고 있습니다. 또는을 던질 수 UnsupportedOperationException
있습니다.
나는 java.lang.UnsupportedOperationException
당신이 찾고있는 것이라고 생각합니다 .
new UnsupportedOperationException("Not implemented yet")
-행복?
예외 처리로 방해받지 않기 위해 RuntimeException을 확장하면 클래스가 다음과 같이 보일 수 있습니다.
public class NotImplementedException extends RuntimeException {
private static final long serialVersionUID = 1L;
public NotImplementedException(){}
}
메시지를 가져 오기 위해 확장 할 수는 있지만 내가하는 것처럼 메서드를 사용하면 (즉, 구현해야 할 사항이 있음) 일반적으로 추가 메시지가 필요하지 않습니다.
나는 시스템을 개발하는 과정 에서이 방법 만 사용한다고 감히 말하지만, 여전히 제대로 구현되지 않은 방법을 잃어 버리지 않도록합니다. :)
UnsupportedOperationException
내 의견으로 는 사용하는 것보다 낫습니다 . 이제 자바 만이 이것을 예외의 공통 라이브러리에 추가한다면!
언급했듯이 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);
}
}
이 방법에는 다음과 같은 이점이 있습니다.
NotYetImplementedException
구현이 계획되어 잊혀 졌거나 아직 진행 중임을 알고 있지만 UnsupportedOperationException
( 수금 계약에 따라) ) 어떤 것도 결코 구현되지 않을 . 그래서 클래스 이름에 "yet"이라는 단어가 있습니다. 또한 IDE는 호출 사이트를 쉽게 나열 할 수 있습니다.import
(JDK 9는 이 문제 를 해결했습니다).거기에는 유효한 용도가 거의 없기 때문에 존재하지 않을 수도 있고 없을 수도 있습니다. 나는 그것을 사용하기 전에 두 번 생각할 것입니다. 또한 실제로 자신을 만드는 것은 쉽습니다.
.NET에있는 이유에 대해서는 이 토론을 참조하십시오 .
나는 추측한다 UnsupportedOperationException
심지어 작업이 단지 구현되지 말하지만, 지원되지 않는되지 않지만, 가까이 온다. 이는 유효한 구현이 불가능하다는 것을 암시 할 수 있습니다. 작업이 지원되지 않는 이유는 무엇입니까? 거기 있어야합니까? 인터페이스 분리 또는 Liskov 대체 문제?
그것이 진행중인 작업이라면 갈 것입니다 ToBeImplementedException
.하지만 구체적인 방법을 정의한 적이 없었습니다. 그런 다음 오랫동안 그것을 생산으로 만들면 그러한 예외가 필요할 것입니다.