public static void ParseAndExecute(IShell shell, IStream stream, string line) { try { //explicit try to bubble up io exceptions var tokens = Tokens(line); //throws parse exceptions if (tokens != null && tokens.Length > 0) { shell.Execute(stream, tokens); } } catch (Exception ex) { stream.HandleException(ex); } }