# File lib/main/program/class_methods.rb, line 138
      def wrap_run!
        evaluate do
          alias_method 'run!', 'run'

          def run()
            exit_status =
              catch :exit do
                begin
                  parse_parameters

                  if help?
                    puts(usage.to_s)
                    exit
                  end

                  pre_run
                  before_run
                  run!
                  after_run
                  post_run

                  finalize
                rescue Object => exception
                  self.exit_status ||= exception.status if exception.respond_to?(:status)
                  handle_exception(exception)
                end
                nil
              end

            self.exit_status ||= (exit_status || exit_success)
            handle_exit(self.exit_status)
          end
        end
      end