본문 바로가기

에러핸들링2

2. 중첩된 Goto 문을 이용한 에러 핸들링 앞선 포스트에서 Goto 문을 이용해서 try-catch와 유사하게 에러 핸들링을 하는 방법에 대해 살펴보았다. 이번 포스트에서는 Goto 문 여러개를 이용해서 단계별로 에러 핸들링을 하는 방법에 대해 다뤄보려 한다. 특정 함수 안에서 작업 A, B, C가 이뤄진다고 가정해 보자. 이 작업들은 완료가 된 이후 반드시 정리가 되어야 자원 낭비(e.g. 메모리릭)가 발생하지 않는다. 그렇다면 함수를 빠져나가기 전에 A, B, C 작업은 모두 정리가 되어야 한다. C언어에서 If를 사용해서 각 작업을 정리하는 프로세스를 그림으로 그리면 아래와 같다. 위 그림에서 보이는 문제는 크게 두 가지이다. 불필요한 코드 중복 발생 휴먼 에러에 의한 버그 발생 확률 증가 불필요한 코드 중복 발생은 작업 정리 프로세스들이 .. 2021. 12. 30.
1. Goto를 사용한 에러핸들링 프로그래밍을 하다보면 발생 가능한 에러들에 대해서 신경을 써야 한다. 버그는 신중한 개발자가 좋은 코드를 짠다면 최소화 할 수 있는 반면, 에러는 좋은 코드에서든 나쁜 코드에서든 발생한다. 결국 우리는 에러가 발생할 수 있다는 사실을 받아들이고, 이를 어떻게 처리할 지 생각해야 한다. 다음은 흔히들 마주칠 수 있는 에러들의 예시이다. 파일 열기 파일 입출력 소켓 통신 메모리 할당 C언어 이후에 개발된 언어들은 대부분 Try-Catch 혹은 이와 유사한 구문을 지원한다. Try-Catch 문에 익숙하지 않다면 아래 Java 프로그램의 예시를 살펴보자. 더보기 다음은 파일을 열고, 내용을 한줄씩 출력하는 Java 프로그램이다. import java.io.BufferedReader; import java.io.. 2021. 12. 26.