0

RuntimeExceptionがどのように機能するかを理解するのに問題があります。Googleで検索しました。

私が1つ使用したいアプリケーションは、2つのレジの動作をシミュレートするレジプログラムです。2つのクラスを使用します。1つは入力と出力を使用し、もう1つはすべてのメソッドなどを使用します。

私の割り当ての説明では、メソッドが違反した前提条件を確実にキャッチし、有益なエラーでRuntimeExceptionをスローするようにしています。

これを実装する方法がわかりません-ここでは構文を探していませんが、RuntimeExceptionがどのように機能するか、またはメソッドの前提条件が何であるかを完全に理解していないため、このような設定方法を探しています。どうすれば実装できますか?

4

2 に答える 2

5

前提条件とは、メソッドが正しく実行される前に、メソッドドキュメントが真でなければならないことです。たとえば、引数が正でなければならないという前提条件を設定できます。(別の例は、オブジェクトが特定の状態にある必要があることです。)

RuntimeExceptionは、タイプ(およびそのサブクラス)の例外がチェックさExceptionれていないという点で特別なサブクラスです。メソッドシグネチャの一部としてそれらをスローすることを宣言する必要はありません。aの一例はです。RuntimeExceptionRuntimeExceptionIllegalArgumentException

したがって、正の数で呼び出された場合にのみ機能するメソッドがある場合は、次のようになります。

public void foo(int x) {
    if (x <= 0) {
        throw new IllegalArgumentException("x must be positive");
    }
    // Rest of the code here
}

これにより、メソッドの残りの部分が、意図されていなかった状況で動作しようとするのを防ぎます。

于 2013-02-20T22:54:10.777 に答える
1

実装前にいくつかの記事を読んでノウハウレベルを上げる必要があると思いますが、これはさらに進んだステップです。まず、Javaのすべてのエラーと例外のスーパークラスであるThrowableクラスについて調べることができます。この質問もチェックできます。

次に、例外にアクセスする必要があります。Oracleチュートリアルでは、実行時の処理について詳しく説明しています。または、実際の例でタイトルを説明しているこの記事も確認できます。

エラーと例外の階層についても、この図を使用すると理解しやすくなります。

スロー可能な家族

于 2013-02-20T23:16:37.597 に答える