Delen via


Stop-opdrachten in Visual Basic

De Visual Basic Stop-instructie biedt een programmatisch alternatief voor het instellen van een onderbrekingspunt. Wanneer het foutopsporingsprogramma een Stop-instructie tegenkomt, wordt de uitvoering van het programma verbroken (wordt de onderbrekingsmodus geactiveerd). C#-programmeurs kunnen hetzelfde effect bereiken met behulp van een aanroep naar Debugger.Break.

U kunt een Stop-instructie instellen of verwijderen door de broncode te bewerken. U kunt geen stopinstructies instellen of wissen met behulp van debuggercommando's, zoals bij een onderbrekingspunt.

In tegenstelling tot een End-instructie, reset een Stop-instructie geen variabelen en wordt u niet teruggezet naar de ontwerpmodus. U kunt Doorgaan kiezen in het menu Foutopsporing om door te gaan met het uitvoeren van de toepassing.

Wanneer u een Visual Basic-toepassing uitvoert buiten het foutopsporingsprogramma, wordt met een Stop-instructie het foutopsporingsprogramma gestart als Just-In-Time-foutopsporing is ingeschakeld. Als Just-In-Time-foutopsporing niet is ingeschakeld, gedraagt de instructie Stoppen zich alsof het een end-instructie is en beëindigt de uitvoering. Er treedt geen QueryUnload- of Unload-gebeurtenis op, dus u moet alle Stop-instructies uit de releaseversie van uw Visual Basic-toepassing verwijderen. Zie Just-In-Time Foutopsporing voor meer informatie.

Om te voorkomen dat stopinstructies moeten worden verwijderd, kunt u voorwaardelijke compilatie gebruiken:

#If DEBUG Then
   Stop
#Else
   ' Don't stop
#End If

Een ander alternatief is om een Debug.Assert instructie te gebruiken in plaats van de Stop-instructie. Een Debug.Assert instructie onderbreekt de uitvoering alleen wanneer niet aan een opgegeven voorwaarde wordt voldaan. Assert instructies worden automatisch verwijderd wanneer u een Release-versie maakt. Zie Assertions in Managed Code voor meer informatie. Als u een Assert instructie wilt die de uitvoering altijd onderbreekt in de foutopsporingsversie, kunt u dit doen:

Debug.Assert(false);

Een ander alternatief is om de Debug.Fail methode te gebruiken:

Debug.Fail("a clever output string goes here");