diff --git a/contrib/HighOrderMeshOptimizer/OptHOM.cpp b/contrib/HighOrderMeshOptimizer/OptHOM.cpp
index 6ecfb3bf9c0696401f8b6aef7f7558f675d9fd86..f6a39bf29cd3932136eb81e1d475e553d59f2d12 100644
--- a/contrib/HighOrderMeshOptimizer/OptHOM.cpp
+++ b/contrib/HighOrderMeshOptimizer/OptHOM.cpp
@@ -265,13 +265,18 @@ void OptHOM::OptimPass(alglib::real_1d_array &x,
   if (OPTMETHOD == 1) {
     alglib::mincgstate state;
     alglib::mincgreport rep;
-    mincgcreate(x, state);
-    mincgsetscale(state,scale);
-    mincgsetprecscale(state);
-    mincgsetcond(state, EPSG, EPSF, EPSX, itMax);
-    mincgsetxrep(state, true);
-    alglib::mincgoptimize(state, evalObjGradFunc, printProgressFunc, this);
-    mincgresults(state, x, rep);
+    try{
+      mincgcreate(x, state);
+      mincgsetscale(state,scale);
+      mincgsetprecscale(state);
+      mincgsetcond(state, EPSG, EPSF, EPSX, itMax);
+      mincgsetxrep(state, true);
+      alglib::mincgoptimize(state, evalObjGradFunc, printProgressFunc, this);
+      mincgresults(state, x, rep);
+    }
+    catch(alglib::ap_error e){
+      Msg::Error("%s", e.msg.c_str());
+    }
     iterationscount = rep.iterationscount;
     nfev = rep.nfev;
     terminationtype = rep.terminationtype;
@@ -279,13 +284,18 @@ void OptHOM::OptimPass(alglib::real_1d_array &x,
   else {
     alglib::minlbfgsstate state;
     alglib::minlbfgsreport rep;
-    minlbfgscreate(3, x, state);
-    minlbfgssetscale(state,scale);
-    minlbfgssetprecscale(state);
-    minlbfgssetcond(state, EPSG, EPSF, EPSX, itMax);
-    minlbfgssetxrep(state, true);
-    alglib::minlbfgsoptimize(state, evalObjGradFunc, printProgressFunc, this);
-    minlbfgsresults(state, x, rep);
+    try{
+      minlbfgscreate(3, x, state);
+      minlbfgssetscale(state,scale);
+      minlbfgssetprecscale(state);
+      minlbfgssetcond(state, EPSG, EPSF, EPSX, itMax);
+      minlbfgssetxrep(state, true);
+      alglib::minlbfgsoptimize(state, evalObjGradFunc, printProgressFunc, this);
+      minlbfgsresults(state, x, rep);
+    }
+    catch(alglib::ap_error e){
+      Msg::Error("%s", e.msg.c_str());
+    }
     iterationscount = rep.iterationscount;
     nfev = rep.nfev;
     terminationtype = rep.terminationtype;