SCJP 6 スタディ ガイド Exam_310-065 の第 5 章と、セクションException Declaration and the Public Interfaceを学習しています。
「各メソッドは、catch 句を指定してすべてのチェック済み例外を処理するか、未処理の各チェック済み例外をスローされた例外としてリストする必要があります。」
処理されていないチェック済みの各例外をスローされた例外としてどのようにリストし、コードでどのように表示するのでしょうか? ありがとう。
SCJP 6 スタディ ガイド Exam_310-065 の第 5 章と、セクションException Declaration and the Public Interfaceを学習しています。
「各メソッドは、catch 句を指定してすべてのチェック済み例外を処理するか、未処理の各チェック済み例外をスローされた例外としてリストする必要があります。」
処理されていないチェック済みの各例外をスローされた例外としてどのようにリストし、コードでどのように表示するのでしょうか? ありがとう。
次のようになります。
public void foo() throws SomeCheckedException, AnotherCheckedException
{
// This method would declare it in *its* throws clause
methodWhichThrowsSomeCheckedException();
if (someCondition)
{
// This time we're throwing the exception directly
throw new AnotherCheckedException();
}
}
詳細については、JLS のセクション 8.4.6 を参照してください。
たとえば、次の場合:
public void doSomething() throws SomeException {
...
throw new SomeException();
}
を呼び出したい場合は、例外を発生doSomething
させるかcatch
、それを使用するメソッドをスローの影響を受けやすいものとして宣言する必要があるSomeException
ため、呼び出しスタックでさらに伝播します。
public void doSomethingElse() throws SomeException {
doSomething();
}
または
public void doSomethingElse() {
try {
doSomething();
}
catch (SomeException) {
// Error handling
}
}
RuntimeException
s はチェック例外ではないため、この規則の例外であることを考慮してください。