Reload after an exception not possible ?

Stef Mientki s.mientki at ru.nl
Wed Aug 1 08:32:16 PDT 2007


hello,

I posted this question in the normal Python newsgroup,
because I think it's a normal Python question,
but I'm afraid that these kinds of constructs are only used in GUI.
So maybe here someone can give the answer.
> 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 ????
>
thanks,
Stef Mientki




More information about the wxpython-users mailing list