知っている
throw new Exception();
完全なstackTraceなどを作成するため、かなり大きなオーバーヘッドがあります。
throw new Throwable();
同じ問題を提示しますか?この動作は継承されていますか、それとも、Throwable をスローするとオーバーヘッドが小さくなりますか?
EDITアナリストの観点から、間違ったパスワードを挿入するユーザーは、プログラムの通常の実行順序の例外です
。だから私が持っている場合:
public Session newSession() {
validate_user_and_password();
}
アナリストの観点からは、UserNotValidException をスローすることは正しいように思えます。あなたのコードがかなり良い抽象化を持っている場合、
返すnull
か、単に間違っているように聞こえます。0
これを実際にコードで実装できるかどうか、または理論に任せる必要があるかどうかを知りたかっただけです。
プログラミング視点の例外とアナリスト視点の例外には大きな違いがあります。
注: 非常に単純でばかげた例を示しましたが、これは私の場合とは異なります。
注 2: 戻るnull
のが普通のことであることはわかっていますが、適切に抽象化されたオブジェクト指向のコードが必要であり、個人的にはこれに害はないと思います。