diff --git a/CodeToXMI.sln.DotSettings.user b/CodeToXMI.sln.DotSettings.user
index 822c584913ed2180a0d6398ebabf842cdeb2a54b..895eacf99d7af96c72bd04bc418ea3b27a4f08c8 100644
--- a/CodeToXMI.sln.DotSettings.user
+++ b/CodeToXMI.sln.DotSettings.user
@@ -35,6 +35,9 @@
   <TestAncestor>
     <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions</TestId>
   </TestAncestor>
+&lt;/SessionState&gt;</s:String>
+	<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=952a43de_002D77a2_002D4c44_002D853c_002D0658b00c7b83/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from &amp;lt;UnitTest&amp;gt;" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
+  &lt;Project Location="/Users/jakubkonvicka/RiderProjects/diplomathesis/UnitTest" Presentation="&amp;lt;UnitTest&amp;gt;" /&gt;
 &lt;/SessionState&gt;</s:String>
 	<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=9cd5065d_002Da7a4_002D4689_002Db1fe_002Df606c9e9e91d/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisions" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
   &lt;TestAncestor&gt;
diff --git a/WebAPI/Controllers/ApiController.cs b/WebAPI/Controllers/ApiController.cs
index 4117177e9d6561cd1a0422c8295785df3cfcfc9c..2547f1a10e79f59df21c138ecc2ca1c0ce3af5a2 100644
--- a/WebAPI/Controllers/ApiController.cs
+++ b/WebAPI/Controllers/ApiController.cs
@@ -62,21 +62,43 @@ namespace WebAPI.Controllers
 
                 //base 64 string to string
                 string code = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(sourceCode.Code));
-
+                
                 var inputStream = new AntlrInputStream(code);
                 var lexer = new CPP14Lexer(inputStream);
                 CommonTokenStream tokens = new CommonTokenStream(lexer);
                 CPP14Parser parser = new CPP14Parser(tokens);
-
+                
                 ActivityDiagramBuilderCreator activityDiagramBuilderCreator = new ActivityDiagramBuilderCreatorFactory();
-
                 var diagramBuilder = activityDiagramBuilderCreator.FactoryMethod("ActivityDiagram");
-                IParseTree tree = parser.translationUnit();
+                
+                IParseTree tree = null;
+                try
+                {
+                    tree = parser.translationUnit();
+                }
+                catch(Exception e)
+                {
+                    Console.WriteLine($"Error in parsing code: {e.Message}");
+                    return BadRequest("Error in parsing code, please check the code");
+                }
 
                 if (parser.NumberOfSyntaxErrors == 0)
                 {
-                    CppActivityDiagramVisitor activityDiagramVisitor = new CppActivityDiagramVisitor(diagramBuilder, contextIdentifier, functionIdentifier);
-                    Console.WriteLine(activityDiagramVisitor.Visit(tree));
+                    try
+                    {
+                        CppActivityDiagramVisitor activityDiagramVisitor = new CppActivityDiagramVisitor(diagramBuilder, contextIdentifier, functionIdentifier);
+                        var result = activityDiagramVisitor.Visit(tree);
+                        Console.WriteLine(result);
+                    }
+                    catch(Exception e)
+                    {
+                        Console.WriteLine($"CppActivityDiagramVisitor: Error in visiting tree: {e.Message}");
+                        return BadRequest("CppActivityDiagramVisitor: Error in visiting tree");
+                    }
+                }
+                else
+                {
+                    return BadRequest("Syntax error in code");
                 }
 
                 var xmi = diagramBuilder.BuildDiagram();
@@ -115,21 +137,45 @@ namespace WebAPI.Controllers
 
                 //base 64 string to string
                 string code = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(sourceCode.Code));
-
+                
                 var inputStream = new AntlrInputStream(code);
                 var lexer = new CPP14Lexer(inputStream);
                 CommonTokenStream tokens = new CommonTokenStream(lexer);
                 CPP14Parser parser = new CPP14Parser(tokens);
-
+                
                 ClassDiagramBuilderCreatorFactory classDiagramBuilderCreator = new ClassDiagramBuilderCreatorFactory();
 
                 var diagramBuilder = classDiagramBuilderCreator.FactoryMethod("ClassDiagram");
-                IParseTree tree = parser.translationUnit();
+                IParseTree tree = null;
+                
+                try
+                {
+                    tree = parser.translationUnit();
+                }
+                catch(Exception e)
+                {
+                    Console.WriteLine($"Error in parsing code: {e.Message}");
+                    return BadRequest("Error in parsing code, please check the code");
+                }
 
                 if (parser.NumberOfSyntaxErrors == 0)
                 {
-                    CppClassDiagramVisitor classDiagramVisitor = new CppClassDiagramVisitor(diagramBuilder);
-                    Console.WriteLine(classDiagramVisitor.Visit(tree));
+                    try
+                    {
+                        CppClassDiagramVisitor classDiagramVisitor = new CppClassDiagramVisitor(diagramBuilder);
+                        var result = classDiagramVisitor.Visit(tree);
+                        Console.WriteLine(result);
+                    }
+                    catch (Exception e)
+                    {
+                        Console.WriteLine($"CppClassDiagramVisitor: Error in visiting tree: {e.Message}");
+                        return BadRequest("CppClassDiagramVisitor: Error in visiting tree");
+                    }
+
+                }
+                else
+                {
+                    return BadRequest("Syntax error in code");
                 }
 
                 var xmi = diagramBuilder.BuildDiagram();