-1

このコードNotFoundExceptionが発生するとメインブロックの例外が発生しますが、発生させたいのですがNotFoundException、どうすれば対処できますか?

try {
    if (x > y) {
        throw new NotFoundException("entity is not found");
    }
} catch (final Exception e) {
    throw new InternalServerErrorException(e);
}
4

2 に答える 2

1
try {
    if (x>y)
        throw new NotFoundException("entity is not found");
} catch (Exception e) {
    if (e instanceof NotFoundException) {
        throw e;
    } else {
        throw new InternalServerErrorException(e);
    }
}

また...

try {
    if (x>y)
        throw new NotFoundException("entity is not found");
} catch (NotFoundException e) {
    throw e;
} catch (Exception e) {
    throw new InternalServerErrorException(e);
}
于 2015-06-29T19:02:44.787 に答える
0

ここで最初にすべきことは、try catch ブロックが必要ないということです。あなたはただ使うことができます

if (x > y) {
    throw new NotFoundException("entity is not found");
}

明らかに、コードの内部例外は try catch ブロックでキャッチされるため、catch ブロックでキャッチするのではなく、Exceptionより具体的な例外をキャッチできます。たとえば、コード ブロックが をスローすると予想される場合は、キャッチするIOExceptionのではなく、キャッチExceptionする必要があります。IOException

于 2015-06-29T19:13:32.440 に答える