Good afternoon, Larry.

Looking at the comparison table, it seems that the two most important
differences are:

   1.

   Backtrace consumes a lot of resources.
   2.

   There is an explicit contract for exceptions thrown by a function.
   3.

   I didn't fully understand the point about the exception hierarchy, but
   it seems important too.

It seems to me that the Backtrace issue is a problem of a low level of
abstraction — the implementation of exceptions. That's one problem. The
lack of an explicit contract is a problem on a completely different level
of abstraction.

The issue with the missing contract could have been solved even for
exceptions, without creating a new entity.

Regarding Backtrace, the following questions seem fair:

   1.

   What if I want to know where the situation occurred? Can I just ignore
   this information?
   2.

   If yes, why not create an option to disable backtrace generation for
   exceptions?

Regarding the Result/Error type.

I have experience using this approach in remote services, where exceptions
seem inappropriate.
It’s probably possible to use it even now without generics, and without any
special language features.

What if we focus on:

   1.

   Improving exception handling, making it as lightweight as in Python.
   2.

   Introducing explicit exception contracts.

Best Regards, Ed.

Reply via email to