I've checked the code, but does that imply I should program everything inside a try/catch block? :X
Just put your mainloop inside it.
Try ' error handling Yourgamestate.start() ' or "Game.run" or whatever you want Catch o:Object HandleGeneralError(o) End Try
Then your complete code is running inside it.
No need to change anyting else in your program.