code: public static function enable($state = true, $enable_assert = false){
  
  		$state = (bool) $state;
  
  		self::enableAssert((bool) $enable_assert);
  
  		if($state && self::$_enabled || !$state && !self::$_enabled){
  
  			return;
  		}
  
  		if($state){
  
  			set_exception_handler(__CLASS__ . '::exception');
  			set_error_handler(__CLASS__ . '::error', error_reporting());
  			assert_options(ASSERT_CALLBACK, __CLASS__ . '::assert');
  
  			self::$_enabled = true;
  		}
  		else{
  
  			restore_exception_handler();
  			restore_error_handler();
  
  			/*
  			 * According to the PHP documentation this should reset to NULL,
  			 * but doing so generates an error when evaluating assertions, so
  			 * we instead revert to an empty function...
  			 */
  
  			assert_options(ASSERT_CALLBACK, function(){});
  
  			self::$_enabled = false;
  		}
  	}
docs: Enable all custom error-, exception- and assert-handling.
  
  <p>This overwrites the built-in exception-handling, error-handling and
  assert logic with the ones provided by the Framework (c.q. as defined in
  this file). The optional argument {@link $state} can be used to
  revert back to the previous (c.q. built-in) handlers.</p>
  
  <p><strong>Note:</strong> Repeated calls to this method have no effect;
  once enabled it will not re-enable (to ensure the previous handlers can
  be consistently restored). If other parts of the code start messing with
  the error-handling you're on your own though...<br>
  <strong>N.B.</strong>: The {@link $enable_assert} parameter <em>is</em>
  processed during repeat-calls to this method, so it is possible to
  repeatedly change assert()-evaluation via this method (even though
  calling {@link ExceptionHandler::enableAssert()} directly is the
  recommended way).</p>
  
  @param boolean $state
  @param boolean $enable_assert
  @return void
  @uses ExceptionHandler::enableAssert()