Avatar billede lillebror17 Nybegynder
18. november 2003 - 16:18 Der er 6 kommentarer og
1 løsning

uncaught exception?

I følgende linje, bliver der åbenbart smidt en exception i min kode, men programmet virker alligevel:
CMyViewTeacher* pView =    (CMyViewTeacher*)((CFrameWnd*)AfxGetMainWnd())->GetActiveView();

Hvordan kan jeg fange den?
Jeg er ikke vant til at arbejde med exceptions...
Avatar billede jpk Nybegynder
18. november 2003 - 16:23 #1
try
{
  // Kode her
}
catch (...)
{
}
Avatar billede jpk Nybegynder
18. november 2003 - 16:24 #2
Hvis du ved hvilken exception du vil fange, kan du skrive den istedet for ...
Ex.
try
{
  // Kode her
}
catch (Exception e)
{
}
Avatar billede lillebror17 Nybegynder
18. november 2003 - 17:27 #3
ok, det virker da, men det hjælper mig stadig ikke til at finde ud af hvad der er galt med mit kald, er der en måde jeg kan finde ud af hvilken exception der er tale om?
Avatar billede segmose Nybegynder
19. november 2003 - 08:32 #4
Ja, undersøg e (af type Exception), eller slå op på GetActiveView() og se hvilke exceptions den kan smidde.

det kunne se sådan ud:

cout << e.reason() << endl;
Avatar billede jpk Nybegynder
19. november 2003 - 08:52 #5
Virker 2. eksempel?
Hvis ja, kan du sikkert gøre således:

try
{
  // Kode her
}
catch (Exception e)
{
  TRACE("%s", typeid(e).name());
}

Det vil så skrive navnet ud på typen af exception.
Du kan med fordel prøve at debugge for at se hvad exception objektet indeholder...
Avatar billede lillebror17 Nybegynder
19. november 2003 - 10:42 #6
Det er kun nedenstående der virker

try
{
  // Kode her
}
catch (...)
{
}
Avatar billede jpk Nybegynder
19. november 2003 - 11:10 #7
Prøv i første omgang at dele kaldene op, så du kan se hvor den exception bliver smidt:

CFrameWnd* pFrameWnd = (CFrameWnd*)AfxGetMainWnd();
// Check her om pFrameWnd er NULL!
CMyViewTeacher* pView = pFrameWnd->GetActiveView();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester