inflearn logo
강의

Course

Instructor

Toby's Spring 6 - Understanding and Principles

ExRateExtractor Callback

jackson(3.0.2 버전) ObjectMapper.readValue 에러타입

109

parkhj0629262

43 asked

0

3.0.2 버전의 경우 readValue가 JacksonException을 throw하는 것으로 타입이 선언되어 있는데요. (unchecked Exception 타입)

 

public <T> T readValue(String content, Class<T> valueType)
    throws JacksonException

 

Unchecked Exception(상위 에러 타입이 RuntimeException)이지만 강의처럼 try catch 이용하여 JacksonException을 catch 하면 될까요?

아님 RuntimeException 이니 별도로 catch 없이 코드를 작성하는게 좋을까요?

java spring

Answer 2

0

tobyilee

RuntimeException 타입의 예외인 경우 다음 필요가 있을 때만 catch를 하면 됩니다. 그 외에는 그냥 예외로 넘어가도록 놔두시는 것이 좋겠네요.

  • 다른 예외로 전환할 필요가 있을 때. 이건 메소드의 규약을 의도적으로 특정 예외를 반환하도록 강제할 필요가 있을 때 런타임이더라도 예외 전환을 하도록 catch해서 wrapping한 다음에 다시 throw할 수 있습니다. Checked 예외라서 계속 throw/catch가 전파되는 상황을 피하기 위해서 RuntimeException으로 바꾸는 것도 이런 예이죠.

  • 예외 복구가 가능한 경우. 정말 예외적인 상황(네트워크 예외 같은)이 예상되고 이때도 최대한 성공할 수 있게 하려면 재시도나 다른 대체방법(fallback)을 사용하도록 catch할 필요가 있기도 합니다.

그 외의 경우는 굳이 catch할 필요는 없습니다. 강의에서 try/catch를 했다면 그건 아마 사용했던 버전에서는 checked exception이었기 때문일 것 같네요. 버전이 올라가면서 런타임 예외로 바뀌는 경우는 종종 있습니다. catch를 하지 않은 상태에서 코드를 놔두면 IDE에서 체크해주니까 그런 경우에 빠르게 파악하고 넘어갈 수 있죠.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
박호정님, Jackson 3.0.2 버전의 ObjectMapper.readValue 메서드는 JacksonException을 throws하는데, 이는 언체크 예외(Unchecked Exception)로 RuntimeException을 상속받고 있습니다.

일반적으로 언체크 예외는 필수가 아닌 선택적으로 처리하는 것이 권장됩니다. 하지만, 특정한 상황에서 JSON 파싱 오류를 관리하고 싶다면, try-catch 블록을 사용하여 JacksonException을 명시적으로 처리하는 것도 좋은 방법입니다. 이는 오류 발생 시 구체적인 대응을 할 수 있도록 도와줍니다.

즉, 코드의 안정성을 높이고 에러 시 특정한 동작을 수행하고 싶다면 try-catch 블록을 사용하여 예외를 처리하는 것이 좋습니다.

도움이 되었기를 바랍니다. 추가로 궁금한 점이 있다면 언제든지 질문해 주세요!

출처 정보:
- Spring Boot Reference Documentation (언급된 Jackson의 예외 및 사용 방법에 대한 정보는 포함되어 있지 않음)

수업을 잘 듣고 있습니다.

0

103

2

템플릿과 콜백의 역할 경계를 구분하는 기준

0

100

1

테스트를 작성하지않아도 되는 경우

0

86

2

오브젝트 정의 중 배열에 대해서

0

63

2

스프링 레거시를 이용하는 회사에서 일을 하게 될것같은데

0

110

2

JpaTransactionManager에 대해 궁금합니다.

0

81

2

스프링빈과 Clock 클래스 관련

0

44

2

Seprate Interface 패턴에 대한 궁금증

0

46

2

테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?

0

51

2

오브젝트와 인스턴스

0

38

1

WebApiExRateProvider 템플릿 콜백 패턴을 적용하면서 테스트 코드를 만들어보았습니다.

0

64

2

템플릿 콜백 패턴 관련하여 궁금한 것이 있습니다!

0

60

2

상태 변경 API 질문

0

122

2

빈에 대한 질문

0

97

1

안녕하세요.

0

145

2

Payment 엔티티에 exRateProvider 주입

0

101

1

@Transactional private 사용유무

0

157

1

JdbcClient 생성 질문

0

190

2

안녕하세요 PaymentConfig 질문드립니다.

0

111

2

[공유] 윈도우 사용자를 위한 http 명령어 오류 해결 방법

0

246

2

생성자 파라미터성자 파라미터

0

239

2

토비님 ! BigDecimal 관련 링크를 못찾겠어요

2

346

2

인터페이스 사용에 관하여 질문드립니다.

0

309

3

Order에서 JPA 메타데이터 분리 - XML 사용

0

260

2