|
아래와 같이 OnExcepiton 에서 처리를 해줄 수 있습니다. 단, 윈도우가 자체적으로 예외를 발생하므로, SetErrorMode로 먼저 예외 처리를 Disable 시켜 놓아야 합니다
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SHDocVw_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AppException(TObject *Sender, Exception *E)
{
if(E->Message == "I/O error 21")
ShowMessage("CD-Rom이 준비되지 않았습니다");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnException = AppException;
SetErrorMode(SEM_FAILCRITICALERRORS);
}
//---------------------------------------------------------------------------
학생 님이 쓰신 글 :
: DriveComboBox에서 CD-ROM Drive에 디스크가 없을때....
: I/O 에러 창이 뜨는데요..
: 눈에 거슬려서..
: "디스크가 없습니다"로 바꾸고 싶은데요..
: Try ~ catch 문으로 해봤는데도.. 잘안되네요..
: try{
: Application->Run();
:
: }
: catch(EInOutError &)
: {
: ShowMessage(...);
: }
:
: 이런식으로 처리했는데요...
:
: 안되더라구요..
:
:
|