|
빌더초보 님이 쓰신 글 :
: 박지훈.임프 님이 쓰신 글 :
: : 빌더초보 님이 쓰신 글 :
: : : 안녕하세요?
: : : VB에는 On Error Resume Next 구문이 있어서, 오류가 나더라도 다음 문이 계속 실행이 됩니다.
: : : Builder에도 이런 구문(기능)이 있는지요?
: : : try...catch 문의 경우 오류가 나면 catch 문이 실행되고나서 catch 문 다음으로 넘어 가는 것으로 알고 있습니다.
: :
: :
: : 임펠리테리입니다.
: :
: : catch()문의 블럭({...}) 내에 아무 코드도 안쓰면 됩니다. 우습죠? 그런데 실제로 그렇게 씁니다.
: : try
: : {
: : // 에러가 날 수 있는 코드들
: : }
: : catch(...)
: : {
: : }
: : // 그다음에 계속할 코드들...
: :
: : 그럼 참고하시길...
:
: 음...
: 제 질문의 의도와 좀 다른 답변을 주셨군요...
: 아래 예제에서 3라인에서 오류가 발생하겠죠. 그리고 나서 4라인이 실행이 안되잖아요.
: 제가드린 질문은 try 문에 있는 코드를 계속 실행할 수 있느냐 였거든요. 아래 예제에는 try문 내에 2라인 밖에 없지만 만약에 수십 라인이 있다고 했을 때 첫 줄에서 오류가 발생하면 나머지 코드는 하나도 실행이 안된다는 점을 말씀 드린 겁니다.
: 결론 적으로 말씀드리면 오류가 나던 말던 모든 코드가 실행되는 방법이 있는지를 알고 싶다는 것입니다.
: try
: {
: int i = StrToInt("3w");
: ShowMessage("오류 다음") ;
: }
: catch(...)
: {
: }
:
앗~ 제가 헛짚었군요. 긁적긁적~
C/C++ 언어에 그런 기능은 없습니다. 똑같이 구현하시려면, 모든 코드 라인을 각각 try~catch로 묶어야 하겠지요.
그런데... 그런 필요가 있는지 좀 의아합니다. 보통, 논리적으로는 한 문장에서 예외가 발생하면 그에 따른 아래의 몇 문장도 의미가 없어지는 경우가 대부분입니다. 위 예제에서처럼, i에 값을 넣으려다 예외가 발생했다면 i를 처리하는(보여주거나 디비에 넣거나) 뒤따르는 몇문장이 있게 마련이고, 그 몇문장을 뭉뚱그려서 예외처리를 하는 것이 보통이니까요.
그냥 제 생각입니다만, VB에서는, 그런 예외 같은 건 전혀 신경쓰고 싶지 않은 초보 분들을 위해 그런 문법을 추가하지 않았나 싶습니다. 적어도 초기의 VB에서는 그런 문법은 없었던 걸로 기억하니까요.
그럼 이만...
|