回答:
コモンズラングはそれを持っています。または、をスローすることもできますUnsupportedOperationException
。
私java.lang.UnsupportedOperationException
はあなたが探しているものだと思います。
new UnsupportedOperationException("Not implemented yet")
-幸せですか?
あなたはそれを自分で行うことができます(それが私がしたことです)-例外処理に煩わされないように、単にRuntimeExceptionを拡張すると、クラスは次のようになります:
public class NotImplementedException extends RuntimeException {
private static final long serialVersionUID = 1L;
public NotImplementedException(){}
}
メッセージを受け取るように拡張することもできますが、この方法を使用する場合(つまり、まだ実装する必要があることを思い出させるため)、通常は追加のメッセージは必要ありません。
私はあえて言うと、私はシステムを開発している最中にこの方法のみを使用しているため、どの方法がまだ適切に実装されていないのかを見逃さないようにしています:)
UnsupportedOperationException
私の意見ではの使用よりも優れています。さて、もしJavaだけが例外の共通ライブラリにこれを追加するなら!
すでに述べたように、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
(と一直線に述べているコレクション契約何かが実装されないことを)。そのため、クラス名に「まだ」という単語が含まれています。また、IDEは呼び出しサイトを簡単にリストできます。import
(ただし、JDK 9で修正されました)。いいえ、ありません。有効な使用法がほとんどないため、おそらく存在しません。使う前によく考えます。また、自分で作成するのは確かに簡単です。
それが.NETでさえある理由については、この議論を参照してください。
UnsupportedOperationException
操作が実装されていないだけでなく、サポートもされていないということはありませんが、近いと思います。これは、有効な実装が不可能であることを意味する可能性があります。操作がサポートされないのはなぜですか?それもそこにあるべきですか?インターフェースの分離またはリスコフの置換の問題でしょうか?
それが進行中の作業である場合、私は行きますがToBeImplementedException
、具体的なメソッドを定義するのに気づかず、それを長い間そのままにしておくと、それが実稼働になり、そのような例外が必要になります。