That's fine, and a well-known and understood argument, but they should both be replaced. I don't think we want exception handling to differ for this invocation vs core exploit runs. Given that exploit_simple is arguably thee single most vital method in the entire framework, it should probably be outside this PR and handled by a more concerted effort. I would argue that in the name of DRYness and consistency, basic exploit exception handling should probably be handled inside exploit_simple vs around its invocation

Additionally, we can keep making this general argument till we are blue in the face, but until we make a concerted effort to reduce the root problem, we're just gonna keep having this discussion over and over, which some might say is the definition of madness

> On May 20, 2014, at 7:12, Meatballs1 <notifications@github.com> wrote:
> 
> In lib/msf/base/sessions/scriptable.rb:
> 
> > +          # to the values from the datastore (of the exploit) that spawned the
> > +          # session
> > +          local_exploit_opts = copy_of_orig_exploit_datastore.merge(opts)
> > +
> > +          # try to run this local exploit, which is likely to be exception prone
> > +          begin
> > +            new_session = mod.exploit_simple(
> > +              'Payload'       => local_exploit_opts['PAYLOAD'],
> > +              'Target'       => local_exploit_opts['TARGET'],
> > +              'LocalInput'    => self.user_input,
> > +              'LocalOutput'   => self.user_output,
> > +              'Options'       => local_exploit_opts
> > +              )
> > +          rescue ::Interrupt
> > +            raise $!
> > +          rescue ::Exception => e
> There's lots of legacy ::Exceptions but they should be replaced (e.g #3144). Doesn't mean we want to add more! :D
> 
> —
> Reply to this email directly or view it on GitHub.