Situatie: Bij het proces van het integreren van een library die voorheen gemaakte eigen classes moet vervangen, treedt deze fout op.
We krijgen geen regelnummer bij de fout.
1. Klasse
Onderaan zien we aktief:
FMain.@new.0
De hele MMain (opstartklasse) wordt doorlopen zonder probleem (stap voor stap gecheckt met breekpunten).
Vanuit MMain wordt FMain gestart, dan treedt het probleem op. Er zijn wel een aantal variabelen zichtbaar in de foutopsporing, dus een stukje van FMain lijkt te lopen, maar met breekpunten is het niet uit te zoeken: zelfs een breekpunt op de eerste lijn geeft toch al een fout bij het uitvoeren van FMain.
Het probleem leek verdwenen na het verwijderen van de klasse die ook in de library zit.
2. Methode
Deze keer ligt het aan een methode in de gebruikte klasse; die is ooit hermaakt geweest en er moest een methode met de nieuwe naam gebruikt worden: bv “loadConnection” en “makeConnection”.
De oude bestond nog maar werkte niet correct.
3. Declaratie
In een module staat:
Private hDayReq As New CDayReq
“AS NEW” vervangen door aparte declaratie en initialisatie, waardoor je de fout ziet bij de initialisatie (bv daar moest nog een waarde aangeleverd worden als argument).
Private hDayReq As CDayReq
'
hDayReq = New CDayReq("A")
Als de initialisatie niet expliciet gebeurt, maar bij het eerste gebruik van deze module/classe, dan krijg je enkel een summiere foutverwijzing naar de module, maar niet naar de lijn in de module waar de fout vandaankomt.
De impliciete initialisatie met AS NEW gebeurt voor alle gedeclareerde objecten als één ervan gebruikt wordt, niet noodzakelijk hetgene waarvan de initialisatie een fout heeft.