+1

This is also similar to how errors are typed in Go as well.

On Wednesday, April 6, 2016, Alexander Rojas <alexan...@mesosphere.io>
wrote:

> +1
>
> What I like is that it allows from some kind of type safety into the error
> management beyond trying to parse error strings.
>
> > On 05 Apr 2016, at 03:48, Michael Park <mp...@apache.org <javascript:;>>
> wrote:
> >
> > Contrary to standard C++ practices, Mesos uses return values as the
> > mechanism
> > for error handling rather than exceptions.
> >
> > This proposal is simply an evolution of the current mechanism we have in
> > Mesos today.
> > This direction is consistent with the designs made in Rust, which uses
> > return values as
> > the error handling mechanism at the language level.
> >
> > The first step is to add an additional template parameter to class
> template
> > *Try*, to get *Try<T, E>*.
> >
> > The proposed design defaults* E *to *Error*, and requires that *E* be, or
> > is inherited from *Error*.
> > The return type of *error()* is *const std::string&* if *E == Error* and
> > *const E&* otherwise,
> > for backwards-compatibility reasons.
> >
> > So in the end, *Try<T>* behaves exactly as before.
> >
> > The work is being tracked in MESOS-5107
> > <https://issues.apache.org/jira/browse/MESOS-5107>, and i've written a
> > quick design doc
> > <
> https://docs.google.com/document/d/1tG21sD-ZX64FHAKJwhEPk6JkgsBIv12AmA1Y3J0kCYY/edit#
> >
> > capturing
> > some of the preliminary thoughts on this topic, and a proposal for an
> > immediate use case
> > for the Windows work.
> >
> > If you're interested in how Rust deals with error handling, check out
> > https://doc.rust-lang.org/book/error-handling.html. Our *Option* is
> their
> > *Option*,
> > our *Try* is their *Result*, and they don't have our *Result*.
> >
> > I'm going to be pushing the changes proposed shortly, but the changes are
> > small and
> > does not require a large sweeping changes or anything like that.
> > So please reach out to me with your concerns and complaints and I will be
> > sure to address them.
> >
> > Thanks,
> >
> > MPark
>
>

-- 
~Kevin

Reply via email to