diff --git a/src/main/java/org/opennars/web/httpnar/NARServer.java b/src/main/java/org/opennars/web/httpnar/NARServer.java
index fdf482f02b17b856b45e1d5ebfaa38e2550a798c..7b3a93e1bee47329ca34fe9784cd4df6f30612cc 100644
--- a/src/main/java/org/opennars/web/httpnar/NARServer.java
+++ b/src/main/java/org/opennars/web/httpnar/NARServer.java
@@ -16,15 +16,21 @@ package org.opennars.web.httpnar;
 
 import java.io.File;
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 import java.net.InetSocketAddress;
+import java.text.ParseException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.parsers.ParserConfigurationException;
 import org.java_websocket.WebSocket;
 import org.java_websocket.WebSocketImpl;
 import org.java_websocket.handshake.ClientHandshake;
 import org.java_websocket.server.WebSocketServer;
 import org.opennars.interfaces.pub.Reasoner;
 import org.opennars.main.Nar;
+import org.xml.sax.SAXException;
 
 public class NARServer  {
 
@@ -54,7 +60,27 @@ public class NARServer  {
             if (WEBSOCKET_DEBUG) System.out.println("Connect: " + conn.getRemoteSocketAddress().getAddress().getHostAddress());
 
             if(nar == null) {
-                nar = new Nar();
+                try {
+                    nar = new Nar();
+                } catch (IOException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (InstantiationException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (InvocationTargetException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (NoSuchMethodException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (ParserConfigurationException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (IllegalAccessException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (SAXException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (ClassNotFoundException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                } catch (ParseException ex) {
+                    Logger.getLogger(NARServer.class.getName()).log(Level.SEVERE, null, ex);
+                }
             }
             final NARConnection n = new NARConnection(nar, cycleIntervalMS) {
                 @Override public void println(String output) {
diff --git a/src/main/java/org/opennars/web/multinar/NarNode.java b/src/main/java/org/opennars/web/multinar/NarNode.java
index 2bc3297ea0ac48489afcd0ef813fdd4228cbfeca..936a9f4f84fa9ccfb7bae08f5a6b8a7192a77163 100644
--- a/src/main/java/org/opennars/web/multinar/NarNode.java
+++ b/src/main/java/org/opennars/web/multinar/NarNode.java
@@ -20,21 +20,25 @@ import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutput;
 import java.io.ObjectOutputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetAddress;
 import java.net.SocketException;
 import java.net.UnknownHostException;
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import javax.xml.parsers.ParserConfigurationException;
 import org.opennars.entity.Task;
 import org.opennars.io.events.EventEmitter.EventObserver;
 import org.opennars.io.events.Events;
 import org.opennars.language.CompoundTerm;
 import org.opennars.language.Term;
 import org.opennars.main.Nar;
+import org.xml.sax.SAXException;
 
 public class NarNode extends Nar implements EventObserver  {
     
@@ -51,7 +55,9 @@ public class NarNode extends Nar implements EventObserver  {
      * @throws SocketException
      * @throws UnknownHostException 
      */
-    public NarNode(int listenPort) throws SocketException, UnknownHostException {
+    public NarNode(int listenPort) throws SocketException, UnknownHostException, IOException, InstantiationException, 
+            InvocationTargetException, NoSuchMethodException, ParserConfigurationException, IllegalAccessException, SAXException, 
+            ClassNotFoundException, ParseException {
         super();
         this.receiveSocket = new DatagramSocket(listenPort, InetAddress.getByName("127.0.0.1"));
         this.event(this, true, Events.TaskAdd.class);
@@ -190,7 +196,9 @@ public class NarNode extends Nar implements EventObserver  {
      * @throws IOException
      * @throws InterruptedException 
      */
-    public static void main(String[] args) throws SocketException, UnknownHostException, IOException, InterruptedException {
+    public static void main(String[] args) throws SocketException, UnknownHostException, IOException, 
+            InterruptedException, InstantiationException, InvocationTargetException, ParserConfigurationException, 
+            NoSuchMethodException, SAXException, ClassNotFoundException, IllegalAccessException, ParseException {
         int nar1port = 64001;
         int nar2port = 64002;
         String localIP = "127.0.0.1";