public TResult Try <TResult>(Func <TResult> action)
        {
            var awareAction = new ExceptionAwareAction <TResult>(action, this.provider);

            this.tryCatch(awareAction);
            return(awareAction.Result);
        }
        public void Try(Action action)
        {
            var awareAction = new ExceptionAwareAction(action, this.provider);

            this.tryCatch(awareAction);
        }