jython: how do you exit an applet early?

G

gcash

I've written an applet using Java3D for rendering, which works fine if
you have Java3D installed, of course.

What I want to do is try to import the Java3D libraries and bail with an
error message to the user if they're not there.

You can't do "raise SystemExit" or "sys.exit(0)" because both of those
try to kill the browser's Java VM, which a) raises a security exception
and b) isn't what I want anyway.

A "return" statement does the trick as an applet, but raises a
"SyntaxError: 'return' outside function" and doesn't even run when using
Jython from the command line to test things. (It shouldn't work as an
applet, but at this point I was just randomly trying things in
desperation.)

What SHOULD I be doing?

This is the code I'm using:

try:
# Java3D libraries
from com.sun.j3d.utils.applet import MainFrame
from com.sun.j3d.utils.behaviors.vp import *
from com.sun.j3d.utils.image import *
from com.sun.j3d.utils.universe import *
from javax.media.j3d import *
from javax.vecmath import *
except:
# Deal gracefully with Java3D not being installed
class GearBox(Applet):
def init(self):
self.add(Label('Java3D is not properly installed.', Label.CENTER))
if __name__ == '__main__':
# Not running as an applet
print 'Java3D is not properly installed.'
raise SystemExit
else:
# SyntaxError: 'return' outside function
return


My email is gcash AT cfl.rr.com, but please post your reply to the group.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,066
Latest member
VytoKetoReviews

Latest Threads

Top