public int TryParseFormula(out string errorMsg) { string formulaSummary = string.Empty;; int retVal = Constants.Success; FormulaSummary = string.Empty; errorMsg = string.Empty; double molarMass = 0; MolarMass = 0; try { if (!Regex.IsMatch(formula, allowedElements, RegexOptions.CultureInvariant | RegexOptions.Compiled | RegexOptions.Singleline)) { retVal = Constants.Failure; errorMsg = "Check formula, only elements and parentheses () allowed."; } if (retVal == Constants.Success) { retVal = parser.SetFormula(Formula, out formulaSummary, out molarMass); if (retVal == Constants.Success) { MolarMass = molarMass; FormulaSummary = formulaSummary; } else { errorMsg = parser.GetLastError(); } } } catch (Exception ex) { retVal = Constants.Failure; errorMsg = string.Format("An unexpected error occurred: {0}", ex.Message); } return(retVal); }