add: */
context: BThreadedTestCaller<TestClass, ExpectedException>::run(CppUnit::TestResult *result) {	result->startTest(this);	try {    		setUp();		// This try/catch block should never actually have to catch		// anything (unless some bonehead passes in a NULL pointer to		// the constructor). Each BThreadManager object catches and		// handles exceptions for its respective thread, so as not		// to disrupt the others.		try {			// Verify we have a valid object first.			if (!fObject)				throw CppUnit::Exception("BThreadedTestCaller::runTest() -- NULL fObject pointer");			// Launch all the threads.			for (ThreadManagerMap::iterator i = fThreads.begin();				   i != fThreads.end ();	    	         ++i)	    	{	    		status_t err = i->second->LaunchThread(result);				if (err != B_OK)					result->addError(this, new CppUnit::Exception("Error launching thread '" + i->second->getName() + "'"));//				printf("Launch(%s)\n", i->second->getName().c_str());			}						// Wait for them all to finish, then clean up			for (ThreadManagerMap::iterator i = fThreads.begin();				  i != fThreads.end ();	    	        ++i)			{//				printf("Wait(%s)...", i->second->getName().c_str());				fflush(stdout);				i->second->WaitForThread();//				printf("done\n");				delete i->second;			}			fThreads.clear();					} catch ( CppUnit::Exception &e ) {			// Add on the a note that this exception was caught by the			// thread caller (which is a bad thing), then note the exception	        CppUnit::Exception *threadException = new CppUnit::Exception(	        	std::string(e.what()) + " (NOTE: caught by BThreadedTestCaller)",	        	e.sourceLine()	        );        	        				result->addFailure( fObject, threadException );		}		catch ( std::exception &e ) {			// Add on the thread name, then note the exception	        CppUnit::Exception *threadException = new CppUnit::Exception(	        	std::string(e.what()) + " (NOTE: caught by BThreadedTestCaller)"	        );        	        				result->addError( fObject, threadException );		}		catch (...) {			// Add on the thread name, then note the exception			CppUnit::Exception *threadException = new CppUnit::Exception(				"caught unknown exception (NOTE: caught by BThreadedTestCaller)"			);			result->addError( fObject, threadException );		}		snooze(50000);		try {		    tearDown();		} catch (...) {			result->addError(this, new CppUnit::Exception("tearDown() failed"));		}			} catch (...) {		result->addError(this, new CppUnit::Exception("setUp() failed"));	}	// setUp() try/catch block	result->endTest(this);}