Problem with destroying showbase

I use an update task to write onScreenText, based on the action that the character is doing. When the user closes the window, I catch system exit exception and call showbase.destroy(), but when I run again, text from the previous runs keeps appearing. Why is that??.
Moreover, if I load sound in one run, it keeps playing in the next run even though I call showbase.destroy()