public Ret Invoke(Arg1 arg1, Arg2 arg2, Arg3 arg3) { // swallow all exceptions so that simulation can still progress try { return(function(arg1, arg2, arg3)); } catch (Exception e) { FARLogger.InfoFormat("FARAtmosphere.{0}: exception {1}\n{2}", Name, e.Message, e.StackTrace); return(Default(arg1, arg2, arg3)); } }