[dmd-internals] Throwing Errors

Jacob Carlborg doob at me.com
Sat Mar 17 08:00:47 PDT 2012


On 15 mar 2012, at 23:57, Jonathan M Davis wrote:

> On Thursday, March 15, 2012 15:25:32 Walter Bright wrote:
>> 
>> If you want to recover, use an Exception.
> 
> In general, I agree. It's just that there are a few cases where it makes 
> sense. The main one has to do with unit tests. In some cases, it makes sense 
> to catch an AssertError within a unit test, because assert is what's used in 
> unit tests. For instance, some programmers want to test their in contracts. 
> The biggest case though is that some programmers want to build more extensive 
> unit testing frameworks on top of the built-in one. And to do that, you have 
> to catch AssertErrors. Personally, I see no need for such frameworks, but some 
> people (e.g. Jacob Carlborg) definitely want them, and if AssertErrors skip 
> scope statements, finally blocks, or destructors, that's going to cause major 
> problems for their frameworks.

I see three ways to solve this:

* Make it safe to catch errors
* Make assert throw an exception
* Make the onAssertError callback usable

Is it possible we can agree on something here or would I need to have my own "assert" function.

-- 
/Jacob Carlborg



More information about the dmd-internals mailing list