no, non è una cosa stupida; evidentemente il tuo modello per lanciare eccezioni:
codice:
if ( (row >= _dim) || (column >= _dim) )
		throw out_of_bounds_exception();
ti ha fatto perdere tempo.

Meglio sarebbe un qualcosa del tipo:
codice:
RuntimeAssert ((row >= _dim) || (column >= _dim));
che in caso di fallimento "logghi" almeno __FILE__ e __LINE__ no?
;-)

ad esempio:
codice:
#define RuntimeAssert(theAssertion) YourRuntimeAssertFunction((theAssertion), __FILE__, __LINE__)