Q&A

  • Error명 찾는 법과 예외처리방법
금요일 입니다.

마냥 놀고만 싶은데 델파이가 절 놔 주지 않는군요.

초보는 밥묵고 델파이랑만 놀아야 할 모양입니다.



InterBase를 사용해서 사원코드관리를 하는 간단한 프로램을 연습중입니다.

기능에 대한 코딩은 제가 아는대로 어쨌든 움직이기는 합니다만,

어느 프로그램이든지 모르는 에러가 나면 안된다고 들었습니다.

그래서 예외처리를 해주려고 하는데

1.예외처리는 꼭 해당 Error명을 알아야 하는지 (예를들면 : Edbengineerror),

2.꼭 알아야한다면 이 Error명을 알기위해 프로그램에게 얄궂은 데이터를 넘겨봐서

실제 에러를 띄워야 하는건지.

3.이런 Error만 모아놓은 책자는 없는지.

4.마지막으로 제가 맘대로 아래와 같이 코딩하고 중복되면 안되는 사원번호에 같은 번호를 입력해서 해봤는데,

-아래-

try

FieldByName('Dept').Value := DBECode.Text;

FieldByName('Positn').Value := EPCode.Text;

FieldByName('JobDay').Value := StrToDate(DBEJDay.Text);

FieldByName('JobCode').Value := EJCode.Text;

Post;

except

on E : ElBInterBaseError do

showmessage('작업을 실패했습니다');

end;

// 앞뒤 생략.

여전히 모르는 영어 에러 메세지가 뜨더라구요.



그래서 에러명 없이 except부분을 ShowMessage만 남겨도 보았는데 여전히 안됩니다.



도데체 예외처리는 어떻게 해주나요?

2  COMMENTS
  • Profile
    linuxwiz 2000.09.02 01:54
    최혜정 wrote:

    > 금요일 입니다.

    > 마냥 놀고만 싶은데 델파이가 절 놔 주지 않는군요.

    > 초보는 밥묵고 델파이랑만 놀아야 할 모양입니다.

    >

    > InterBase를 사용해서 사원코드관리를 하는 간단한 프로램을 연습중입니다.

    > 기능에 대한 코딩은 제가 아는대로 어쨌든 움직이기는 합니다만,

    > 어느 프로그램이든지 모르는 에러가 나면 안된다고 들었습니다.

    > 그래서 예외처리를 해주려고 하는데

    > 1.예외처리는 꼭 해당 Error명을 알아야 하는지 (예를들면 : Edbengineerror),

    > 2.꼭 알아야한다면 이 Error명을 알기위해 프로그램에게 얄궂은 데이터를 넘겨봐서

    > 실제 에러를 띄워야 하는건지.

    > 3.이런 Error만 모아놓은 책자는 없는지.

    > 4.마지막으로 제가 맘대로 아래와 같이 코딩하고 중복되면 안되는 사원번호에 같은 번호를 입력해서 해봤는데,

    > -아래-

    > try

    > FieldByName('Dept').Value := DBECode.Text;

    > FieldByName('Positn').Value := EPCode.Text;

    > FieldByName('JobDay').Value := StrToDate(DBEJDay.Text);

    > FieldByName('JobCode').Value := EJCode.Text;

    > Post;

    > except

    > on E : ElBInterBaseError do

    > showmessage('작업을 실패했습니다');

    > end;

    > // 앞뒤 생략.

    > 여전히 모르는 영어 에러 메세지가 뜨더라구요.

    >

    > 그래서 에러명 없이 except부분을 ShowMessage만 남겨도 보았는데 여전히 안됩니다.

    >

    > 도데체 예외처리는 어떻게 해주나요?



    답변이 될라나여...



    제가 알고 있기로는 에러는 무수만은 줄 알고 있습니다..

    그건 컴파일시에만 그렇구여...

    왜냐하면,, 에러를 캐치 해야 하거든여...



    위으 에러메세지를 보고싶지 않으면

    델파이 통합환경에서 환경설정중에..

    하시면 되구여...



    대부분의 데이타베이스는 dbengineerror 로 다잡힙니다...

    그리구 실행파일을 실행시키면...



    showmessage가 이쁘게 뜹니다..







  • Profile
    최혜정 2000.09.04 20:47
    linuxwiz wrote:

    > 최혜정 wrote:

    > > 금요일 입니다.

    > > 마냥 놀고만 싶은데 델파이가 절 놔 주지 않는군요.

    > > 초보는 밥묵고 델파이랑만 놀아야 할 모양입니다.

    > >

    > > InterBase를 사용해서 사원코드관리를 하는 간단한 프로램을 연습중입니다.

    > > 기능에 대한 코딩은 제가 아는대로 어쨌든 움직이기는 합니다만,

    > > 어느 프로그램이든지 모르는 에러가 나면 안된다고 들었습니다.

    > > 그래서 예외처리를 해주려고 하는데

    > > 1.예외처리는 꼭 해당 Error명을 알아야 하는지 (예를들면 : Edbengineerror),

    > > 2.꼭 알아야한다면 이 Error명을 알기위해 프로그램에게 얄궂은 데이터를 넘겨봐서

    > > 실제 에러를 띄워야 하는건지.

    > > 3.이런 Error만 모아놓은 책자는 없는지.

    > > 4.마지막으로 제가 맘대로 아래와 같이 코딩하고 중복되면 안되는 사원번호에 같은 번호를 입력해서 해봤는데,

    > > -아래-

    > > try

    > > FieldByName('Dept').Value := DBECode.Text;

    > > FieldByName('Positn').Value := EPCode.Text;

    > > FieldByName('JobDay').Value := StrToDate(DBEJDay.Text);

    > > FieldByName('JobCode').Value := EJCode.Text;

    > > Post;

    > > except

    > > on E : ElBInterBaseError do

    > > showmessage('작업을 실패했습니다');

    > > end;

    > > // 앞뒤 생략.

    > > 여전히 모르는 영어 에러 메세지가 뜨더라구요.

    > >

    > > 그래서 에러명 없이 except부분을 ShowMessage만 남겨도 보았는데 여전히 안됩니다.

    > >

    > > 도데체 예외처리는 어떻게 해주나요?

    >

    > 답변이 될라나여...

    >

    > 제가 알고 있기로는 에러는 무수만은 줄 알고 있습니다..

    > 그건 컴파일시에만 그렇구여...

    > 왜냐하면,, 에러를 캐치 해야 하거든여...

    >

    > 위으 에러메세지를 보고싶지 않으면

    > 델파이 통합환경에서 환경설정중에..

    > 하시면 되구여...

    >

    > 대부분의 데이타베이스는 dbengineerror 로 다잡힙니다...

    > 그리구 실행파일을 실행시키면...

    >

    > showmessage가 이쁘게 뜹니다..

    >

    >

    컴파일시에 나온 에러명(EIBInterBaseError)을 넣고 컴파일후 실행파일을 실행

    시켰더니 말씀하신대로 Showmessage가 이쁘게 뜨기는 했습니다만,

    Showmessage의 확인을 하고나면 다시 메세지가 하나 더 뜨는군요..

    영어로...

    violation of PRIMARY or UNIQUE KEY donstraint "INTEG_15" on table "TBEMP".

    자료가 중복이라는것 같은데..

    Showmessage만 보이게 하고 끝내는 방법 없나요?

    환경설정에서 잡으라고 하셨는데 쫌만 상세히 알려주시믄 얼씨미 할께요.