On Fri, May 30, 2014 at 2:01 AM, Oleg Eterevsky <[email protected]> wrote:

> > Since browsers were brought up, here is the Google C++ style guide on
> exceptions:
> >
> http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions
>
> As someone who works for Google, I can attest, that exceptions are
> encouraged in Google style guides for Python and Java and the main
> reason they are forbidden in C++ is their memory safety. Google has a
> big amount of pre-exceptions C++ code, and it will break in unexpected
> places if exceptions are allowed.
>
>
Yes, which is a common issue. Exception usage requires exception-safe code.
But then, exception-safe code is also code resilient in the face of
introducing other return paths so it's just overall better whether in the
presence of exceptions or not...


> Go is a different story. It deliberately refuses to support exceptions
> even though it has GC and hence has no problems with exception memory
> safety whatsoever. The lack of exception might be one of the main
> reasons (if not the main reason), why Go is not so popular even within
> Google.
>
>
Personally, I've found exceptions too unwieldy. As I mentioned, the issue
of catching an exception is "now, how do I recover ?".

Note that Rust and Go do have exceptions (and unwinding), it's just that
you have to create a dedicated task instead of a try/catch block. Indeed,
it's more verbose (which is mostly a matter of libraries/macros) and it's
also less efficient (which could be addressed, though at compiler level);
however it's just plain safer: now that shared-state/updates to the
external world are explicit, you can much more easily evaluate what it
takes to recover.



> On Thu, May 29, 2014 at 4:39 PM, comex <[email protected]> wrote:
> > On Thu, May 29, 2014 at 7:10 PM, Oleg Eterevsky <[email protected]>
> wrote:
> >> The projects in C++ that forbid exceptions are doing so not because of
> >> some prejudice, but because exceptions in C++ are unsafe. In Java
> >> standard library exceptions are ubiquitous.
> >
> > If you mean checked exceptions, I hear that they're quite unpopular,
> > although I don't use Java.
> >
> > Since browsers were brought up, here is the Google C++ style guide on
> > exceptions:
> >
> >
> http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions
> >
> > It bans them due to a variety of downsides which would only be
> > partially addressed by checked-exception-like safety systems.  I think
> > Google Java code does use exceptions, but that's language culture for
> > you.
> >
> > As a related data point, Go eschews exceptions entirely due to prejudice:
> >
> > http://golang.org/doc/faq#exceptions
> >
> > Not that I agree with most of Go's design decisions... still, I think
> > these examples are enough to demonstrate that there are legitimate
> > reasons to prefer a language designed without exceptions.
> >
> > I think it may be good for you to get more experience with Rust,
> > although as I mentioned, I also lack experience.
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to