C #에서는 throw;
명령문을 사용 하여 스택 추적을 유지하면서 예외를 다시 발생 시킬 수 있습니다 .
try
{
...
}
catch (Exception e)
{
if (e is FooException)
throw;
}
Java에 이와 같은 것이 있습니까 ( 원래 스택 추적을 잃지 않습니다 )?
답변
catch (WhateverException e) {
throw e;
}
단순히 잡은 예외를 다시 던질 것입니다 (분명히 주변 메소드는 서명 등을 통해 이것을 허용해야합니다). 예외는 원래 스택 추적을 유지합니다.
답변
내가 선호하는:
try
{
...
}
catch (FooException fe){
throw fe;
}
catch (Exception e)
{
// Note: don't catch all exceptions like this unless you know what you
// are doing.
...
}
답변
또한 예외를 다른 예외로 랩핑하고 원인 매개 변수로 Exception을 Throwable로 전달하여 원래 스택 추적을 유지할 수 있습니다.
try
{
...
}
catch (Exception e)
{
throw new YourOwnException(e);
}
답변
Java에서는 거의 동일합니다.
try
{
...
}
catch (Exception e)
{
if (e instanceof FooException)
throw e;
}
답변
Java에서는 잡은 예외를 그냥 던지기 throw e
보다는 던져 버립니다 throw
. Java는 스택 추적을 유지 관리합니다.
답변
이 같은
try
{
...
}
catch (FooException e)
{
throw e;
}
catch (Exception e)
{
...
}