throwing a RangeError in non-release mode

2010-07-02 Thread Steven Schveighoffer
When not in release mode, accessing an out-of-bounds element in an array  
throws a RangeError.  I would like to do the same thing in dcollections  
when indexing, but the only tool I know of that enables throwing an error  
in non-release mode is assert, and that only throws an assert error.


Does anyone know how to throw an arbitrary exception on an error when not  
in release mode?


-Steve


Re: throwing a RangeError in non-release mode

2010-07-02 Thread Simen kjaeraas

Steven Schveighoffer schvei...@yahoo.com wrote:

When not in release mode, accessing an out-of-bounds element in an array  
throws a RangeError.  I would like to do the same thing in dcollections  
when indexing, but the only tool I know of that enables throwing an  
error in non-release mode is assert, and that only throws an assert  
error.


Does anyone know how to throw an arbitrary exception on an error when  
not in release mode?



Untested code. Also, horrible:

void throwInNonRelease( T = Exception )( lazy bool test, lazy string msg )  
{

  try {
assert( test );
  } catch ( AssertError ) {
throw new T( msg );
  }
}

--
Simen