import java.awt.Toolkit; import java.security.AccessControlException; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; import netscape.javascript.JSObject; /** * * @author javafx */ public class Main extends Application { @Override public void start(Stage primaryStage) { try { Toolkit.getDefaultToolkit().getClass().getFields(); } catch (AccessControlException expected) { System.out.println("Caught first AccessControlException, good."); } WebView root = new WebView(); WebEngine engine = root.getEngine(); JSObject window = (JSObject) engine.executeScript("window;"); window.setMember("helper", new Helper()); try { engine.executeScript("helper.doStuff()"); } catch (AccessControlException e) { // This one doesn't get caught. System.out.println("Caught second AccessControlException ('Stuff!'), good."); } Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } public static class Helper { public void doStuff() { throw new AccessControlException("Stuff! -- should be caught!"); } } }