본문 바로가기

Exception4

[java] exception 처리하기 - try-catch-with-resources 안녕하세요. 오늘은 java7에서 추가된 exception을 좀 더 쉽게 처리할 수 있는 방법에 대해서 알아보는 시간을 가지도록 하겠습니다. 우리가 일반적으로 파일을 읽고 쓰는데 Stream을 이용합니다. Stream은 단방향으로 데이터를 전송할 수 있는 개념입니다. 일반적으로 FileInputStream Class를 이용하면 파일에 있는 데이터를 읽을 수 있습니다. 이때 InputStream을 연 후 파일을 읽고 마무리 후에는 Stream을 닫는 흐름을 일반적으로 가져가게 됩니다. 이런 흐름에서 exception이 발생할 수 있는 위치는 InputStream을 열때, 파일을 읽을 때, InputStream을 닫을 때 총 3군대입니다. 이럴때 exception 처리를 어떻게 할 수 있을지 다양하게 보도록.. 2020. 4. 26.
[java] exception 처리하기 - throws에 관하여 안녕하세요. 오늘은 이전 시간에 이어 exception에 대해서 좀 더 알아 보는 시간을 가지고자 합니다. 우리가 이전 포스터에서 확인한 바에 따르면 exception은 JVM에서 일어나고 call stack을 따라서 처리된다고 배웠습니다. 즉, Unchecked exception의 경우 메서드 체인에 의해서 호출한 곳에 exception에 해당하는 catch가 있으면해당 해당 catch method가 실행되는 것입니다. 그렇다면 throws는 왜 있는걸까요? 결론부터 말씀드리면 unchecked exception의 경우에는 즉, RuntimeException을 상속 받는 Exception의 경우 throws는 아무런 의미도 가지지 않습니다. throws는 checked exception의 처리 방법중 .. 2020. 4. 22.
[java] exception 처리하기 - 실전편 안녕하세요. 우리는 이전 포스팅에서 JVM에서 예외(exception) 처리가 어떻게 이루어 지는지를 살펴보았습니다. 예외를 처리하는 방법으로 예외복구, 예외처리 회피, 예외 전환이 있다라는 알려드렸습니다. 오늘은 실제 코드로 exception을 어떻게 처리하는지 공유하고자 합니다. 예외복구 예외복구는 예외가 발생하더라도 어플리케이션의 로직은 정상적으로 실행이 되게 하도록 처리한다는 의미입니다. 한 예로 통신의 재시도를 들 수 있습니다. 예외가 발생하면 일정 시간동안 대기를 시킨 후 다시 해당 로직을 시도하는 것입니다. 일정 횟수동안 재시도를 이런식으로 진행하며, 그래도 정상적인 응답이 오지 않는 경우 fail 처리하는 로직을 생각할 수 있습니다. 실제로 쓰이는 예제를 보도록 하겠습니다. 아래 예제는 s.. 2020. 4. 19.
[java] exception 처리하기 - 이론편 코딩을 하다보면 꼼꼼함의 중요성을 간과할 때가 많습니다. 새로운 기능, 새로운 기술은 정말 재미있고 시간가는 줄 모르고 할 때가 많습니다. 하지만 이러한 새로운 것들을 실제로 시스템에 적용하기 위해서는 기본이 탄탄해야 합니다. 해야함을 알면서도 프로그래밍을 하다보면 까먹게 되는 게 있습니다. 재미가 없어서지요. 재미가 없더라도 반드시 해야하는 것이 2가지 있습니다. 바로 validation과 exception 처리입니다. 반드시 이 2개는 코딩을 하면서 습관으로 가지시는걸 추천드립니다. :) 오늘은 exception에 대해서 알아보도록 하겠습니다. exception exception은 로직이 실행되는 중(Runtime)에 원하지 않는 이벤트가 발생하거나 예상하지 않은 이벤트가 일어났을때의 처리를 말합니다.. 2020. 4. 7.