C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[9200] 예외 처리 어느때 쓰시나요? -> 배우는 사람의 입장에서의 예외처리.
SteelHeart [kronian] 1142 읽음    2004-04-19 15:23
전 그다지 프로그래밍을 잘 하지 못합니다.

혼자 공부해서 익힌 실력이라, 딱히 내놓은 결과물도 없고..

여간 뭔가 내놓을만한 건 없는, 대학생에 불과합니다.


그렇지만, 전에부터 생각해 오던 주제라서 몇자 적어볼까 합니다.


일단 제 기본적인 입장은, 예외처리를 그다지 신뢰하지는 않습니다.

문제는 이 갖가지 에러들이 발생시키는 '예외' 가 어떤 존재냐 부터 시작된다고 생각합니다.


우리가 프로그램을 작성하면서, 프로그램이 실행되는 기본 흐름을 벗어나는 상황을

통틀어서 예외 상황이라고 할수 있을 것 같습니다.

그리고 전 이런 예외 상황들은, 발생하는 객체 내에서 책임지고 처리해야 한다고 생각합니다.


다만, 근본적으로 이런 예외 상황을 줄이기 위해서

코드 자체가 최소한의 예외를 발생시키도록 해야 한다는 입장입니다.

코드가 길어질수록 그에 따른 예외 상황도 증가할 것이고

더불어 예외 상황 역시 늘어난다는 거죠.


그래서, 전 예외처리를 쓰기보다는

기본 작업 단위(이를테면 함수나 클래스)를 최소화 해서

여러가지 예외상황이 아닌, 한두가지 정도의 예외상황만 처리하도록

최소화 하는 방식을 쓰곤 합니다.


그렇게 되면, 대부분 예외처리보다는 단순히 리턴값이나 상태 변수 정도로

예외(에러)처리를 할수 있게 되더군요.

경험이 부족해서 인지도 모르겠습니다만, 배우면서 그렇게 코딩을 하고 있습니다.


또 다른 한가지는, 예외상황을 발생시키는 것이

프로그램 흐름을 제어하는 데 더 어렵다는 느낌을 받습니다.


예외 상황이 발생하면서, 프로그램의 제어가 예외처리 구문으로 넘어가게 되는데요

이때 프로그램이 수행하던 다른 작업에 대한 관리가 어려워 지는 것 같습니다.


확실하게 일어날 가능성이 있는...이 아닌 언제 일어날지 모를 상황..이라는 느낌인것 같습니다.

게다가 언제 어디서 그 예외를 캐치해야 하는지도 상당히 큰 고민거리입니다.


예를 들어, 메모리를 할당하는 코드일 경우입니다.

char* _Data;

_Data = new char[10];

이런 코드의 경우, new에서 에러가 발생할 경우, 예외를 발생시키는 것으로 알고 있는데요.

실제로 우리에게는 어떤 에러가 일어났는지 보다는, 에러가 났다..라는 점이 더욱 중요한것 같습니다.

때문에, 전 (nothrow) 옵션을 붙여서, NULL 검사를 하곤 합니다.


결론적으로,

객체의 단순화를 통해서, 리턴이나 상태 변수 정도로도 충분히 관리 가능한 에러를

굳이 예외처리까지 해가면서 사용할 필요는 없다..라는 입장입니다.


많은 수의 에러가 날 가능성이 있는 객체라면

그 객체는 더욱 단순하게 나눠서 여러 개의 기본 객체로 만들어 사용할 필요가 있다고 봅니다.


그리고 그 객체 안에서 책임지고 리턴값을 관리한다면

굳이 예외처리까지 쓰지 않아도 된다는 생각입니다.


ps. 잡설 읽어주셔서 감사합니다. 잘못된 것이 있으면 가르침 몇자 부탁드려요 _ _)
이필호.xius [xius]   2004-04-21 00:43 X
안녕하세요. 이필호입니다.

말씀하신 내용은 전부 정답입니다.. 만..
전형적으로 교과서적인 이야기 입니다.

말씀하신대로 최소단위로 클래스 혹은 함수로 나누어 코딩할 경우 그 어마어마한 코딩량에 감당하지 못할 것입니다.

즉, 정해진 일정에 정해진 기능을 구현해야 하는 보통의 SI 일 인 경우 그에 해당하는 일정을 소화하지 못할 가능성이 굉장히 높습니다.  정말 문제가 아닐 수 없지만, 우리 나라 실정상 거의 예외가 없을 정도로 만연되어 있는거 또한 사실입니다.

거의 12시 근처나 되야 퇴근을 해야 겨우 일정이 소화될 만큼 일 양이 많은 경우 말씀하신 내용은 다 아는 내용이지만 현실적으로 불가능 한 경우가 태반입니다.

쩝.. 현실이 너무 싫습니다.. 흑..

+ -

관련 글 리스트
9193 예외 처리 어느때 쓰시나요? 조해진 1061 2004/04/18
9208     Re:예외 처리 어느때 쓰시나요? 홍환민.행복 1283 2004/04/20
9194     Re:예외 처리 어느때 쓰시나요? 박지훈.임프 1684 2004/04/19
9200         예외 처리 어느때 쓰시나요? -> 배우는 사람의 입장에서의 예외처리. SteelHeart 1142 2004/04/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.