誰かが私にJavaでのthrowsExceptionの使用法を説明できますか?メソッドが指定された例外をスローすることを示すために使用されますか?呼び出し元のメソッドは、指定された例外をキャッチする必要がありますか?
したがって、スローの代わりに、try-catchブロックを使用して例外をキャッチできますか?
スローとどう違うの?ありがとう
誰かが私にJavaでのthrowsExceptionの使用法を説明できますか?メソッドが指定された例外をスローすることを示すために使用されますか?呼び出し元のメソッドは、指定された例外をキャッチする必要がありますか?
したがって、スローの代わりに、try-catchブロックを使用して例外をキャッチできますか?
スローとどう違うの?ありがとう
Javaは明示的な例外処理を使用しますRuntimeException
-sを除いて、[メソッド自体によって、または呼び出すメソッドがそれを宣言するthrows
]スローされるすべての例外は、メソッドシグネチャで処理または宣言する必要があります。
メソッドを呼び出すと、発生する可能性のあるエラーが正確にわかっているため、安全性が確保されます。エラーは、try/catch
ブロックを使用してローカルで処理するか、メソッドシグネチャの一部として宣言できます。
@amitはすでに非常に良い答えを出していますが、何かを追加したいだけです。
では、throw の代わりに try-catch ブロックを使用して例外をキャッチできますか?
あなたの質問のこの部分は答えられていないと思います。実際、例外に対して「透過的」なメソッドを定義するか、メソッド内でスローされた例外をキャッチするかを尋ねています。
答えは、アプリケーションによって異なります。一般に、メソッドに例外をキャッチする場合は 2 つのケースがあります。
アプリケーションの特定のレイヤーでスローされた例外をより高いレベルのレイヤーに公開したくない場合。この場合、コードを try ブロックでラップし、スローされた例外を他のレベルの例外でラップします。
try { // いくつかのコード } catch(IOException e) { throw new ApplicationLevelException(e); }
他のほとんどの場合、例外に対して透過的であり、すべての例外を 1 つのポイントでキャッチして、それらをどう処理するかを把握する必要があります。たとえば、顧客向けのエラー メッセージを示します。
メソッドに追加throws
すると、このメソッドはそれを呼び出すメソッドにをスローできることを意味します。Exception
例えば:
public void method1() throws Exception {
...
throw new Exception();
...
}
public void method2() {
try {
method1();
catch(Exception e) {
...
}
}
方法を教えていない場合はthrow
、Exception
それを使用try
しcatch
て処理する必要があります。
例外処理の詳細については、次のドキュメントを参照してください。http: //docs.oracle.com/javase/tutorial/essential/exceptions/
つまり、特定の例外に対して try-catch ブロックを使用している場合は、そこで例外を処理しています。メソッドで throws を指定すると、メソッドがそのような例外をスローできる (そしてそれ自体で処理しない) ことを宣言することになり、その例外を処理するのは呼び出し元の責任になります。
適切な回答は既に与えられていますが、try-catch ブロックが使用されるたびに、例外を処理するための新しいスレッドが作成されることを追加したいと思います。これは、メイン スレッドと try-catch ブロック スレッドで実行されるアクティビティが競合を引き起こす場合に、問題を引き起こすことがあります。
そのため、 throws 句を使用して例外をスローし、API を使用するアプリケーションで例外を処理するように API メソッドを宣言することをお勧めします。
try-catch ブロックを使用するのは最後のオプションです!;)
キーワードは、そのthrows
メソッドが例外をスローする可能性があることを示します。
呼び出し元が独自の例外処理を行いたいと思われる場合は、これを使用する必要があります。それ以外の場合は、try-catch ブロックを使用して、catch ブロックで指定されたエラー値を返す必要があります。たとえば、indexOf()
(配列から) スローする代わりに -1 を返します。例外。