Reload after an exception, not possible ?

Stef Mientki S.Mientki-nospam at mailbox.kun.nl
Tue Jul 31 17:26:08 EDT 2007


hello,

I've a graphical application (wxPython),
where the code in the main GUI loop is given below.


1    JAL_Loaded = False
2    while len(App_Running) > 0:
3        if JALsPy_globals.State == SS_Run:
4            try:
5                if JAL_Loaded:
6                    reload ( JAL_simulation_file )
7                else:
8                    JAL_Loaded = True
9                    import JAL_simulation_file
10           except JALsPy_globals.Reload_Exception:
11               JALsPy_globals.State = SS_Halt


The first time the while loop is entered,
JAL_Loaded is False (line 1),
and when I press some button,
the code will enter at line 8,
importing a module, that has executable code with an infinite loop.

To exit this infinite loop, an exception is generated (by a button press),
and program comes back in the above while-loop line (10,11,2).

So far so good.

Then I change the code in the imported file,
and when I start the engine again,
the flag JAL_Loaded is True, so I don't import,
but I reload the file.

Now I get the next exception
   UnboundLocalError: local variable 'JAL_simulation_file' referenced before assignment

So obviously I can't reload but have to do an import again
(which makes the code much simpler ;-)
but I don't understand why the reload raises an exception ????

please enlighten me,
thanks,
Stef Mientki






More information about the Python-list mailing list